fix qryset fields, model update, model delete, model load, qryset update, qruset filter, qryset bulk_load, qryset bulk_update
This commit is contained in:
@ -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()
|
||||
|
||||
Reference in New Issue
Block a user