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

1import gws 

2import gws.test.util as u 

3import gws.lib.datetimex 

4 

5 

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

7def root(): 

8 u.pg.create('test_table', {'id': 'int primary key', 'datetime': 'text'}) 

9 

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 ''' 

17 

18 yield u.gws_root(cfg) 

19 

20 

21def test_create_date(root: gws.Root): 

22 mc = u.model_context() 

23 

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

25 

26 # print(gws.lib.datetimex.new(2010,6,18)) #2010-06-18 00:00:00+02:00 

27 

28 d = gws.lib.datetimex.new(2010, 6, 18) 

29 f = u.feature(model, id=1, datetime=d) 

30 model.create_feature(f, mc) 

31 

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')] 

34 

35def test_read_date(root: gws.Root): 

36 mc = u.model_context() 

37 

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 ]) 

42 

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

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

45 

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'] 

48 

49def test_update_date(root: gws.Root): 

50 mc = u.model_context() 

51 

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 ]) 

56 

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

58 

59 f = u.feature(model, id=1, datetime='2010-06-19 00:00:00+00') 

60 model.update_feature(f,mc) 

61 

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')] 

64 

65 

66def test_delete_date(root: gws.Root): 

67 mc = u.model_context() 

68 

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 ]) 

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, datetime FROM test_table ORDER BY id') 

80 assert rows == [(2,'2020-07-20 00:00:00+00')]