def testFirst(self): mc = ModelCollection() self.assertIsNone(mc.first()) self.assertIsNone(mc.first(name="test")) items = [MockModel(name="ello"), MockModel(name="ello")] mc._items = items self.assertEqual(mc.first(), items[0]) self.assertIsNone(mc.first(outlook="thunderbird")) self.assertEqual(mc.first(name="ello"), items[0])
def new(self, **kwargs): if not 'name' in kwargs: loops = 0 name = None while name is None: name = self._wordlist[self._word_p] if ModelCollection.first(self, name=name): name = None self._word_p += 1 if self._word_p >= len(self._wordlist): self._word_p = 0 loops += 1 if loops > 2: name = 'unnamed-%s' % len(self._items) break kwargs['name'] = name return ModelCollection.new(self, **kwargs)
def first(self, **kwargs): self._items = self.all() return ModelCollection.first(self, **kwargs)