Coverage for databases/tests/arrays/push/test_json.py: 100%

11 statements  

« prev     ^ index     » next       coverage.py v7.2.7, created at 2024-08-27 18:25 +0000

1import pytest 

2 

3from prisma import Json, Prisma 

4 

5 

6@pytest.mark.asyncio 

7async def test_pushing_json(client: Prisma) -> None: 

8 """Pushing a Json[] value""" 

9 models = [ 

10 await client.lists.create({}), 

11 await client.lists.create( 

12 data={ 

13 'json_objects': [Json('foo'), Json(['foo', 'bar'])], 

14 }, 

15 ), 

16 ] 

17 

18 model = await client.lists.update( 

19 where={ 

20 'id': models[0].id, 

21 }, 

22 data={ 

23 'json_objects': { 

24 'push': [Json.keys(foo='bar'), Json(True)], 

25 }, 

26 }, 

27 ) 

28 assert model is not None 

29 assert model.json_objects == [{'foo': 'bar'}, True] 

30 

31 model = await client.lists.update( 

32 where={ 

33 'id': models[1].id, 

34 }, 

35 data={ 

36 'json_objects': { 

37 'push': [Json('Baz')], 

38 }, 

39 }, 

40 ) 

41 assert model is not None 

42 assert model.json_objects == ['foo', ['foo', 'bar'], 'Baz']