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
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-17 01:37 +0200
1import gws
2import gws.test.util as u
5@u.fixture(scope='module')
6def root():
7 u.pg.create('test_table', {'id': 'int primary key', 'bool_field': 'boolean'})
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 '''
17 yield u.gws_root(cfg)
20def test_create_boolean(root: gws.Root):
21 mc = u.model_context()
23 model = u.cast(gws.Model, root.get('TEST_MODEL'))
25 f = u.feature(model, id=1, bool_field=True)
26 model.create_feature(f, mc)
28 rows = u.pg.rows('SELECT id, bool_field FROM test_table ORDER BY id')
29 assert rows == [(1, True)]
32def test_read_boolean(root: gws.Root):
33 mc = u.model_context()
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 ])
41 model = u.cast(gws.Model, root.get('TEST_MODEL'))
42 fs = model.get_features([1, 2, 3], mc)
44 assert [f.get('bool_field') for f in fs] == [False, True, None]
47def test_update_boolean(root: gws.Root):
48 mc = u.model_context()
50 u.pg.insert('test_table', [
51 {'id': 1, 'bool_field': True},
52 {'id': 2, 'bool_field': False},
53 ])
55 model = u.cast(gws.Model, root.get('TEST_MODEL'))
57 f = u.feature(model, id=1, bool_field=False)
58 model.update_feature(f, mc)
60 rows = u.pg.rows('SELECT id, bool_field FROM test_table ORDER BY id')
61 assert rows == [
62 (1, False), (2, False)
63 ]
66def test_delete_boolean(root: gws.Root):
67 mc = u.model_context()
69 u.pg.insert('test_table', [
70 {'id': 1, 'bool_field': True},
71 {'id': 2, 'bool_field': False},
72 ])
74 model = u.cast(gws.Model, root.get('TEST_MODEL'))
76 f = u.feature(model, id=1)
77 model.delete_feature(f, mc)
79 rows = u.pg.rows('SELECT id, bool_field FROM test_table ORDER BY id')
80 assert rows == [(2, False)]