Skip to content

Commit

Permalink
Add tests for get_or_create() and create_or_get()
Browse files Browse the repository at this point in the history
  • Loading branch information
rudyryk committed Apr 19, 2016
1 parent 44becb6 commit 54cd572
Showing 1 changed file with 37 additions and 1 deletion.
38 changes: 37 additions & 1 deletion tests/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,8 @@ def load_managers(*, managers=None, loop=None, only=None):


class TestModel(peewee.Model):
text = peewee.CharField()
text = peewee.CharField(max_length=100, unique=True)
data = peewee.TextField(default='')


class TestModelAlpha(peewee.Model):
Expand Down Expand Up @@ -282,6 +283,41 @@ def test(objects):

self.run_with_managers(test)

def test_create_or_get(self):
@asyncio.coroutine
def test(objects):
text = "Test %s" % uuid.uuid4()
obj1, created1 = yield from objects.create_or_get(
TestModel, text=text, data="Data 1")
obj2, created2 = yield from objects.create_or_get(
TestModel, text=text, data="Data 2")

self.assertTrue(created1)
self.assertTrue(not created2)
self.assertEqual(obj1, obj2)
self.assertEqual(obj1.data, "Data 1")
self.assertEqual(obj2.data, "Data 1")

self.run_with_managers(test)

def test_get_or_create(self):
@asyncio.coroutine
def test(objects):
text = "Test %s" % uuid.uuid4()

obj1, created1 = yield from objects.get_or_create(
TestModel, text=text, defaults={'data': "Data 1"})
obj2, created2 = yield from objects.get_or_create(
TestModel, text=text, defaults={'data': "Data 2"})

self.assertTrue(created1)
self.assertTrue(not created2)
self.assertEqual(obj1, obj2)
self.assertEqual(obj1.data, "Data 1")
self.assertEqual(obj2.data, "Data 1")

self.run_with_managers(test)

def test_create_uuid_obj(self):
@asyncio.coroutine
def test(objects):
Expand Down

0 comments on commit 54cd572

Please sign in to comment.