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

37 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', 'number': 'float'}) 

8 

9 cfg = ''' 

10 models+ {  

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

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

13 fields+ { name "number" type "float" } 

14 } 

15 ''' 

16 

17 yield u.gws_root(cfg) 

18 

19 

20def test_create_float(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, number=1.5) 

26 model.create_feature(f, mc) 

27 

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

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

30 

31 

32def test_read_float(root: gws.Root): 

33 mc = u.model_context() 

34 

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

36 {'id': 1, 'number': 1.5}, 

37 {'id': 2, 'number': 2.5}, 

38 {'id': 3, 'number': 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 [isinstance(f.get('number'),float) for f in fs] 

45 assert [f.get('number') for f in fs] == [1.5, 2.5, None] 

46 

47 

48def test_update_float(root: gws.Root): 

49 mc = u.model_context() 

50 

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

52 {'id': 1, 'number': 1.5}, 

53 {'id': 2, 'number': 2.5}, 

54 ]) 

55 

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

57 

58 f = u.feature(model, id=1, number=3.5) 

59 model.update_feature(f, mc) 

60 

61 rows = u.pg.rows('SELECT id, number FROM test_table ORDER BY id') 

62 assert rows == [ 

63 (1, 3.5), (2, 2.5) 

64 ] 

65 

66 

67def test_delete_number(root: gws.Root): 

68 mc = u.model_context() 

69 

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

71 {'id': 1, 'number': 1.5}, 

72 {'id': 2, 'number': 2.5}, 

73 ]) 

74 

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

76 

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

78 model.delete_feature(f, mc) 

79 

80 rows = u.pg.rows('SELECT id, number FROM test_table ORDER BY id') 

81 assert rows == [(2, 2.5)]