Coverage for gws-app/gws/plugin/model_field/integer/_test.py: 0%
37 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', 'number': 'integer'})
9 cfg = '''
10 models+ {
11 uid "TEST_MODEL" type "postgres" tableName "test_table"
12 fields+ { name "id" type "integer" }
13 fields+ { name "number" type "integer" }
14 }
15 '''
17 yield u.gws_root(cfg)
20def test_create_integer(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, number=1)
26 model.create_feature(f, mc)
28 rows = u.pg.rows('SELECT id, number FROM test_table ORDER BY id')
29 assert rows == [(1, 1)]
32def test_read_integer(root: gws.Root):
33 mc = u.model_context()
35 u.pg.insert('test_table', [
36 {'id': 1, 'number': 1},
37 {'id': 2, 'number': 2},
38 {'id': 3, 'number': None},
39 ])
41 model = u.cast(gws.Model, root.get('TEST_MODEL'))
42 fs = model.get_features([1, 2, 3], mc)
44 assert [isinstance(f.get('number'), int) for f in fs]
45 assert [f.get('number') for f in fs] == [1, 2, None]
48def test_update_integer(root: gws.Root):
49 mc = u.model_context()
51 u.pg.insert('test_table', [
52 {'id': 1, 'number': 1},
53 {'id': 2, 'number': 2},
54 ])
56 model = u.cast(gws.Model, root.get('TEST_MODEL'))
58 f = u.feature(model, id=1, number=3)
59 model.update_feature(f, mc)
61 rows = u.pg.rows('SELECT id, number FROM test_table ORDER BY id')
62 assert rows == [
63 (1, 3), (2, 2)
64 ]
67def test_delete_number(root: gws.Root):
68 mc = u.model_context()
70 u.pg.insert('test_table', [
71 {'id': 1, 'number': 1},
72 {'id': 2, 'number': 2},
73 ])
75 model = u.cast(gws.Model, root.get('TEST_MODEL'))
77 f = u.feature(model, id=1)
78 model.delete_feature(f, mc)
80 rows = u.pg.rows('SELECT id, number FROM test_table ORDER BY id')
81 assert rows == [(2, 2)]