Coverage for gws-app/gws/plugin/model_field/bool/_test.py: 0%

36 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-04-17 01:37 +0200

1import gws 

2import gws.test.util as u 

3 

4 

5@u.fixture(scope='module') 

6def root(): 

7 u.pg.create('test_table', {'id': 'int primary key', 'bool_field': 'boolean'}) 

8 

9 cfg = ''' 

10 models+ {  

11 uid "TEST_MODEL" type "postgres" tableName "test_table" 

12 fields+ { name "id" type "integer" } 

13 fields+ { name "bool_field" type "bool" } 

14 } 

15 ''' 

16 

17 yield u.gws_root(cfg) 

18 

19 

20def test_create_boolean(root: gws.Root): 

21 mc = u.model_context() 

22 

23 model = u.cast(gws.Model, root.get('TEST_MODEL')) 

24 

25 f = u.feature(model, id=1, bool_field=True) 

26 model.create_feature(f, mc) 

27 

28 rows = u.pg.rows('SELECT id, bool_field FROM test_table ORDER BY id') 

29 assert rows == [(1, True)] 

30 

31 

32def test_read_boolean(root: gws.Root): 

33 mc = u.model_context() 

34 

35 u.pg.insert('test_table', [ 

36 {'id': 1, 'bool_field': False}, 

37 {'id': 2, 'bool_field': True}, 

38 {'id': 3, 'bool_field': None}, 

39 ]) 

40 

41 model = u.cast(gws.Model, root.get('TEST_MODEL')) 

42 fs = model.get_features([1, 2, 3], mc) 

43 

44 assert [f.get('bool_field') for f in fs] == [False, True, None] 

45 

46 

47def test_update_boolean(root: gws.Root): 

48 mc = u.model_context() 

49 

50 u.pg.insert('test_table', [ 

51 {'id': 1, 'bool_field': True}, 

52 {'id': 2, 'bool_field': False}, 

53 ]) 

54 

55 model = u.cast(gws.Model, root.get('TEST_MODEL')) 

56 

57 f = u.feature(model, id=1, bool_field=False) 

58 model.update_feature(f, mc) 

59 

60 rows = u.pg.rows('SELECT id, bool_field FROM test_table ORDER BY id') 

61 assert rows == [ 

62 (1, False), (2, False) 

63 ] 

64 

65 

66def test_delete_boolean(root: gws.Root): 

67 mc = u.model_context() 

68 

69 u.pg.insert('test_table', [ 

70 {'id': 1, 'bool_field': True}, 

71 {'id': 2, 'bool_field': False}, 

72 ]) 

73 

74 model = u.cast(gws.Model, root.get('TEST_MODEL')) 

75 

76 f = u.feature(model, id=1) 

77 model.delete_feature(f, mc) 

78 

79 rows = u.pg.rows('SELECT id, bool_field FROM test_table ORDER BY id') 

80 assert rows == [(2, False)]