fix qryset fields, model update, model delete, model load, qryset update, qruset filter, qryset bulk_load, qryset bulk_update

This commit is contained in:
collerek
2020-10-21 12:14:14 +02:00
parent 64fd9f3cce
commit dbca4367e8
7 changed files with 79 additions and 14 deletions

View File

@ -18,7 +18,7 @@ class Child(ormar.Model):
id: ormar.Integer(name='child_id', primary_key=True)
first_name: ormar.String(name='fname', max_length=100)
last_name: ormar.String(name='lname', max_length=100)
born_year: ormar.Integer(name='year_born')
born_year: ormar.Integer(name='year_born', nullable=True)
class ArtistChildren(ormar.Model):
@ -93,3 +93,39 @@ async def test_working_with_aliases():
assert artist.children[0].first_name == 'Son'
assert artist.children[1].last_name == '2'
await artist.update(last_name='Bundy')
await Artist.objects.filter(pk=artist.pk).update(born_year=1974)
artist = await Artist.objects.select_related('children').get()
assert artist.last_name == 'Bundy'
assert artist.born_year == 1974
artist = await Artist.objects.select_related('children').fields(
['first_name', 'last_name', 'born_year', 'child__first_name', 'child__last_name']).get()
assert artist.children[0].born_year is None
@pytest.mark.asyncio
async def test_bulk_operations_and_fields():
async with database:
d1 = Child(first_name='Daughter', last_name='1', born_year=1990)
d2 = Child(first_name='Daughter', last_name='2', born_year=1991)
await Child.objects.bulk_create([d1, d2])
children = await Child.objects.filter(first_name='Daughter').all()
assert len(children) == 2
assert children[0].last_name == '1'
for child in children:
child.born_year = child.born_year - 100
await Child.objects.bulk_update(children)
children = await Child.objects.fields(['first_name', 'last_name']).all()
assert len(children) == 2
for child in children:
assert child.born_year is None
await children[0].load()
await children[0].delete()
children = await Child.objects.all()