Coverage for gws-app/gws/gis/source/_test.py: 0%
152 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
1"""Tests for the source module"""
3import gws
4import gws.test.util as u
5import gws.gis.source as source
7import gws.gis.crs as crs
10def test_layer_matches():
11 lf = source.LayerFilter(level=1,
12 names=['n1', 'n2', 'n3'],
13 titles=['t1', 't2', 't3'],
14 pattern='test',
15 isGroup=True,
16 isImage=True,
17 isQueryable=True,
18 isVisible=True)
20 sl = gws.SourceLayer(aLevel=1,
21 name='n1',
22 title='t1',
23 aPath='/home/test/sl1',
24 isGroup=True,
25 isImage=True,
26 isQueryable=True,
27 isVisible=True)
28 assert source.layer_matches(sl, lf)
29 sl.aLevel = 2
30 assert not source.layer_matches(sl, lf)
31 sl.aLevel = 1
32 sl.name = 'n2'
33 assert source.layer_matches(sl, lf)
34 sl.name = 'n1'
35 sl.title = 't4'
36 assert not source.layer_matches(sl, lf)
37 sl.title = 't1'
38 sl.apath = '/foo/bar'
39 lf.pattern = 'something'
40 assert not source.layer_matches(sl, lf)
41 lf.pattern = 'test'
42 sl.aPath = '/home/test/sl1'
43 sl.isGroup = False
44 assert not source.layer_matches(sl, lf)
45 sl.isGroup = True
46 sl.isImage = False
47 assert not source.layer_matches(sl, lf)
48 sl.isImage = True
49 sl.isVisible = False
50 assert not source.layer_matches(sl, lf)
51 sl.isVisible = True
52 sl.isQueryable = False
53 assert not source.layer_matches(sl, lf)
54 sl.isQueryable = True
55 lf = source.LayerFilter()
56 assert source.layer_matches(sl, lf)
59def test_check_layers():
60 sl1 = gws.SourceLayer(name='n1')
61 sl2 = gws.SourceLayer(metadata=gws.Metadata(title='t2'))
62 sl3 = gws.SourceLayer(name='n3')
63 sl4 = gws.SourceLayer(metadata=gws.Metadata(title='t4'))
64 sl5 = gws.SourceLayer(name='n5')
65 sl6 = gws.SourceLayer(metadata=gws.Metadata(title='t6'))
67 layers1 = [sl1, sl2]
68 layers2 = [sl3, sl4]
69 layers3 = [sl5, sl6]
71 sl1.layers = layers2
72 sl3.layers = layers3
74 test = source.check_layers(layers1)
76 assert test[0].get('name') == 'n1'
77 assert test[0].get('layers')[0].get('name') == 'n3'
78 assert test[0].get('layers')[0].get('layers')[0].get('name') == 'n5'
79 assert test[0].get('layers')[0].get('layers')[0].get('aUid') == 'n5'
80 assert test[0].get('layers')[0].get('layers')[0].get('aPath') == '/n1/n3/n5'
81 assert test[0].get('layers')[0].get('layers')[0].get('aLevel') == 3
82 assert not test[0].get('layers')[0].get('layers')[0].get('layers')
84 assert test[0].get('layers')[0].get('layers')[1].get('metadata').get('title') == 't6'
85 assert test[0].get('layers')[0].get('layers')[1].get('aUid') == 't6'
86 assert test[0].get('layers')[0].get('layers')[1].get('aPath') == '/n1/n3/t6'
87 assert test[0].get('layers')[0].get('layers')[1].get('aLevel') == 3
88 assert test[0].get('layers')[0].get('layers')[1].get('layers') == []
90 assert test[0].get('layers')[0].get('aUid') == 'n3'
91 assert test[0].get('layers')[0].get('aPath') == '/n1/n3'
92 assert test[0].get('layers')[0].get('aLevel') == 2
94 assert test[0].get('layers')[1].get('metadata').get('title') == 't4'
95 assert test[0].get('layers')[1].get('aPath') == '/n1/t4'
96 assert test[0].get('layers')[1].get('aLevel') == 2
97 assert test[0].get('layers')[1].get('layers') == []
99 assert test[0].get('aUid') == 'n1'
100 assert test[0].get('aPath') == '/n1'
101 assert test[0].get('aLevel') == 1
103 assert test[1].get('metadata').get('title') == 't2'
104 assert test[1].get('aPath') == '/t2'
105 assert test[1].get('aLevel') == 1
106 assert test[1].get('aUid') == 't2'
107 assert test[1].get('layers') == []
110def test_check_layers_revert():
111 sl1 = gws.SourceLayer(name='n1')
112 sl2 = gws.SourceLayer(metadata=gws.Metadata(title='t2'))
113 sl3 = gws.SourceLayer(name='n3')
114 sl4 = gws.SourceLayer(metadata=gws.Metadata(title='t4'))
115 sl5 = gws.SourceLayer(name='n5')
116 sl6 = gws.SourceLayer(metadata=gws.Metadata(title='t6'))
118 layers1 = [sl1, sl2]
119 layers2 = [sl3, sl4]
120 layers3 = [sl5, sl6]
122 sl1.layers = layers2
123 sl3.layers = layers3
125 test = source.check_layers(layers1, revert=True)
127 assert test[0].get('metadata').get('title') == 't2'
128 assert test[0].get('aUid') == 't2'
129 assert test[0].get('aPath') == '/t2'
130 assert test[0].get('aLevel') == 1
131 assert test[0].get('layers') == []
133 assert test[1].get('layers')[0].get('metadata').get('title') == 't4'
134 assert test[1].get('layers')[0].get('aUid') == 't4'
135 assert test[1].get('layers')[0].get('aPath') == '/n1/t4'
136 assert test[1].get('layers')[0].get('aLevel') == 2
137 assert test[1].get('layers')[0].get('layers') == []
139 assert test[1].get('layers')[1].get('name') == 'n3'
140 assert test[1].get('layers')[1].get('layers')[0].get('metadata').get('title') == 't6'
141 assert test[1].get('layers')[1].get('layers')[0].get('aUid') == 't6'
142 assert test[1].get('layers')[1].get('layers')[0].get('aPath') == '/n1/n3/t6'
143 assert test[1].get('layers')[1].get('layers')[0].get('aLevel') == 3
144 assert test[1].get('layers')[1].get('layers')[0].get('layers') == []
146 assert test[1].get('layers')[1].get('layers')[1].get('name') == 'n5'
147 assert test[1].get('layers')[1].get('layers')[1].get('aUid') == 'n5'
148 assert test[1].get('layers')[1].get('layers')[1].get('aPath') == '/n1/n3/n5'
149 assert test[1].get('layers')[1].get('layers')[1].get('aLevel') == 3
150 assert test[1].get('layers')[1].get('layers')[1].get('layers') == []
152 assert test[1].get('layers')[1].get('aPath') == '/n1/n3'
153 assert test[1].get('layers')[1].get('aLevel') == 2
154 assert test[1].get('aUid') == 'n1'
155 assert test[1].get('aPath') == '/n1'
156 assert test[1].get('aLevel') == 1
159def test_filter_layers():
160 lf = source.LayerFilter(names=['n2', 'n4'],
161 isGroup=True,
162 isImage=True,
163 isQueryable=True,
164 isVisible=True)
166 sl1 = gws.SourceLayer(aLevel=1,
167 name='n1',
168 isGroup=True,
169 isImage=True,
170 isQueryable=True,
171 isVisible=True)
173 sl2 = gws.SourceLayer(aLevel=1,
174 name='n2',
175 isGroup=True,
176 isImage=True,
177 isQueryable=True,
178 isVisible=True)
180 sl3 = gws.SourceLayer(aLevel=2,
181 name='n3',
182 isGroup=True,
183 isImage=True,
184 isQueryable=True,
185 isVisible=True)
187 sl4 = gws.SourceLayer(aLevel=2,
188 name='n4',
189 isGroup=True,
190 isImage=True,
191 isQueryable=True,
192 isVisible=True)
194 layers1 = [sl1, sl2]
195 layers2 = [sl3, sl4]
197 sl1.layers = layers2
199 layers1 = source.check_layers(layers1)
201 test = source.filter_layers(layers1, lf)
203 assert test[0].get('aLevel') == 1
204 assert test[0].get('name') == 'n2'
205 assert test[0].get('isGroup')
206 assert test[0].get('isImage')
207 assert test[0].get('isQueryable')
208 assert test[0].get('isVisible')
209 assert test[0].get('aUid') == 'n2'
210 assert test[0].get('aPath') == '/n2'
211 assert not test[0].get('layers')
213 assert test[1].get('aLevel') == 2
214 assert test[1].get('name') == 'n4'
215 assert test[1].get('isGroup')
216 assert test[1].get('isImage')
217 assert test[1].get('isQueryable')
218 assert test[1].get('isVisible')
219 assert test[1].get('aUid') == 'n4'
220 assert test[1].get('aPath') == '/n1/n4'
221 assert not test[1].get('layers')
224def test_combined_crs_list():
225 sl1 = gws.SourceLayer(supportedCrs=[])
226 sl2 = gws.SourceLayer(supportedCrs=[crs.WGS84])
227 sl3 = gws.SourceLayer(supportedCrs=[crs.WGS84, crs.WEBMERCATOR])
228 sl4 = gws.SourceLayer(supportedCrs=[crs.WGS84])
229 sl5 = gws.SourceLayer(supportedCrs=[])
230 sl6 = gws.SourceLayer(supportedCrs=[crs.WGS84, crs.WEBMERCATOR])
231 assert source.combined_crs_list([sl1, sl2, sl3, sl4, sl5, sl6]) == [crs.WGS84]