Coverage for gws-app/gws/plugin/model_field/datetime/_test.py: 0%
39 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
3import gws.lib.datetimex
6@u.fixture(scope='module')
7def root():
8 u.pg.create('test_table', {'id': 'int primary key', 'datetime': 'text'})
10 cfg = '''
11 models+ {
12 uid "TEST_MODEL" type "postgres" tableName "test_table"
13 fields+ { name "id" type "integer" }
14 fields+ { name "datetime" type "text" }
15 }
16 '''
18 yield u.gws_root(cfg)
21def test_create_date(root: gws.Root):
22 mc = u.model_context()
24 model = u.cast(gws.Model, root.get('TEST_MODEL'))
26 # print(gws.lib.datetimex.new(2010,6,18)) #2010-06-18 00:00:00+02:00
28 d = gws.lib.datetimex.new(2010, 6, 18)
29 f = u.feature(model, id=1, datetime=d)
30 model.create_feature(f, mc)
32 rows = u.pg.rows('SELECT id, datetime FROM test_table ORDER BY id')
33 assert rows == [(1, '2010-06-17 22:00:00+00')]
35def test_read_date(root: gws.Root):
36 mc = u.model_context()
38 u.pg.insert('test_table',[
39 {'id':1, 'datetime':'2010-06-18 00:00:00+00'},
40 {'id':2, 'datetime':'2020-07-20 00:00:00+00'}
41 ])
43 model = u.cast(gws.Model, root.get('TEST_MODEL'))
44 fs = model.get_features([1,2], mc)
46 assert [gws.lib.datetimex.is_datetime(f) for f in fs]
47 assert [f.get('datetime') for f in fs] == ['2010-06-18 00:00:00+00', '2020-07-20 00:00:00+00']
49def test_update_date(root: gws.Root):
50 mc = u.model_context()
52 u.pg.insert('test_table',[
53 {'id':1, 'datetime':'2010-06-18 00:00:00+00'},
54 {'id':2, 'datetime':'2020-07-20 00:00:00+00'}
55 ])
57 model = u.cast(gws.Model, root.get('TEST_MODEL'))
59 f = u.feature(model, id=1, datetime='2010-06-19 00:00:00+00')
60 model.update_feature(f,mc)
62 rows = u.pg.rows('SELECT id, datetime FROM test_table ORDER BY datetime')
63 assert rows == [(1,'2010-06-19 00:00:00+00'),(2,'2020-07-20 00:00:00+00')]
66def test_delete_date(root: gws.Root):
67 mc = u.model_context()
69 u.pg.insert('test_table',[
70 {'id':1, 'datetime':'2010-06-18 00:00:00+00'},
71 {'id':2, 'datetime':'2020-07-20 00:00:00+00'}
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, datetime FROM test_table ORDER BY id')
80 assert rows == [(2,'2020-07-20 00:00:00+00')]