/[thuban]/branches/WIP-pyshapelib-bramz/test/test_load.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/test/test_load.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 691 by jonathan, Wed Apr 16 14:06:17 2003 UTC revision 947 by jonathan, Tue May 20 15:27:19 2003 UTC
# Line 1  Line 1 
1  # Copyright (c) 2002 by Intevation GmbH  # Copyright (c) 2002, 2003 by Intevation GmbH
2  # Authors:  # Authors:
3  # Bernhard Herzog <[email protected]>  # Bernhard Herzog <[email protected]>
4  #  #
# Line 93  contents_classified_map_v0_2 = '''\ Line 93  contents_classified_map_v0_2 = '''\
93                      <cldata stroke="#000000" stroke_width="2" fill="None"/>                      <cldata stroke="#000000" stroke_width="2" fill="None"/>
94                  </clnull>                  </clnull>
95                  <clrange min="0" max="1">                  <clrange min="0" max="1">
96                      <cldata stroke="#000000" stroke_width="1" fill="None"/>                      <cldata stroke="#111111" stroke_width="1" fill="None"/>
97                  </clrange>                  </clrange>
98                  <clpoint value=".5">                  <clpoint value=".5">
99                      <cldata stroke="#000000" stroke_width="1" fill="None"/>                      <cldata stroke="#000000" stroke_width="1" fill="#111111"/>
100                  </clpoint>                  </clpoint>
101                  <clrange min="-1" max="0">                  <clrange min="-1" max="0">
102                      <cldata stroke="#000000" stroke_width="1" fill="None"/>                      <cldata stroke="#000000" stroke_width="1" fill="None"/>
# Line 136  contents_test_labels = '''\ Line 136  contents_test_labels = '''\
136  </session>  </session>
137  '''  '''
138    
139    contents_test_layer_projection = '''\
140    <?xml version="1.0" encoding="UTF-8"?>
141    <!DOCTYPE session SYSTEM "thuban.dtd">
142    <session title="single map&amp;layer">
143            <map title="Test Map">
144                    <projection>
145                            <parameter value="zone=26"/>
146                            <parameter value="proj=utm"/>
147                            <parameter value="ellps=clrk66"/>
148                    </projection>
149                    <layer title="My Layer" stroke_width="1" fill="None"
150                        filename="../../Data/iceland/political.shp"
151                        stroke="#000000">
152                        <projection name="hello">
153                            <parameter value="zone=13"/>
154                            <parameter value="proj=tmerc"/>
155                            <parameter value="ellps=clrk66"/>
156                        </projection>
157                <classification field="POPYREG" field_type="string">
158                    <clnull label="hallo">
159                        <cldata stroke="#000000" stroke_width="1" fill="None"/>
160                    </clnull>
161                    <clpoint label="welt" value="1">
162                        <cldata stroke="#000000" stroke_width="2" fill="None"/>
163                    </clpoint>
164                </classification>
165            </layer>
166                    <layer title="My Layer" stroke_width="1" fill="None"
167                        filename="../../Data/iceland/political.shp"
168                        stroke="#000000">
169                        <projection>
170                            <parameter value="proj=lcc"/>
171                            <parameter value="ellps=clrk66"/>
172                        </projection>
173            </layer>
174        </map>
175    </session>
176    '''
177    
178    contents_test_visible = '''\
179    <?xml version="1.0" encoding="UTF-8"?>
180    <!DOCTYPE session SYSTEM "thuban.dtd">
181    <session title="single map&amp;layer">
182            <map title="Test Map">
183                    <projection>
184                            <parameter value="zone=26"/>
185                            <parameter value="proj=utm"/>
186                            <parameter value="ellps=clrk66"/>
187                    </projection>
188                    <layer title="My Layer" stroke_width="1" fill="None"
189                        filename="../../Data/iceland/political.shp"
190                        stroke="#000000" visible="false">
191            </layer>
192        </map>
193    </session>
194    '''
195    
196    contents_test_rasterlayer = '''\
197    <?xml version="1.0" encoding="UTF-8"?>
198    <!DOCTYPE session SYSTEM "thuban.dtd">
199    <session title="single map&amp;layer">
200            <map title="Test Map">
201                    <rasterlayer title="My RasterLayer"
202                         filename="../../Data/iceland/island.tif"
203                         visible="false">
204            </rasterlayer>
205        </map>
206    </session>
207    '''
208    
209  class LoadSessionTest(unittest.TestCase, support.FileTestMixin):  class LoadSessionTest(unittest.TestCase, support.FileTestMixin):
210    
211      def setUp(self):      def setUp(self):
# Line 151  class LoadSessionTest(unittest.TestCase, Line 221  class LoadSessionTest(unittest.TestCase,
221          file = open(self.temp_file_name("load_labels.thuban"), "w")          file = open(self.temp_file_name("load_labels.thuban"), "w")
222          file.write(contents_test_labels)          file.write(contents_test_labels)
223          file.close()          file.close()
224    
225            file = open(self.temp_file_name("load_layerproj.thuban"), "w")
226            file.write(contents_test_layer_projection)
227            file.close()
228    
229            file = open(self.temp_file_name("load_visible.thuban"), "w")
230            file.write(contents_test_visible)
231            file.close()
232    
233            file = open(self.temp_file_name("load_rasterlayer.thuban"), "w")
234            file.write(contents_test_rasterlayer)
235            file.close()
236    
237          self.session = None          self.session = None
238    
239      def tearDown(self):      def tearDown(self):
240          if self.session is not None:          if self.session is not None:
241              self.session.Destroy()              self.session.Destroy()
242            self.session = None
243    
244      def testSingleLayer(self):      def testSingleLayer(self):
245          """Load a session with a single map with a single layer"""          """Load a session with a single map with a single layer"""
# Line 188  class LoadSessionTest(unittest.TestCase, Line 272  class LoadSessionTest(unittest.TestCase,
272                                                       "political.shp")))                                                       "political.shp")))
273          eq(layer.GetClassification().GetDefaultFill(), Color.Transparent)          eq(layer.GetClassification().GetDefaultFill(), Color.Transparent)
274          eq(layer.GetClassification().GetDefaultLineColor().hex(), "#000000")          eq(layer.GetClassification().GetDefaultLineColor().hex(), "#000000")
275            eq(layer.Visible(), True)
276    
277          self.session.Destroy()          self.session.Destroy()
278          self.session = None          self.session = None
279    
280        def testLayerVisibility(self):
281            """Test that the visible flag is correctly loaded for a layer."""
282    
283            eq = self.assertEquals
284            session = load_session(self.temp_file_name("load_visible.thuban"))
285            self.session = session
286            maps = session.Maps()
287            eq(len(maps), 1)
288            map = maps[0]
289            layers = map.Layers()
290            eq(len(layers), 1)
291            layer = layers[0]
292    
293            eq(layer.Visible(), False)
294    
295      def testClassification(self):      def testClassification(self):
296          """Load a session with a map and classified layers."""          """Load a session with a map and classified layers."""
297    
# Line 211  class LoadSessionTest(unittest.TestCase, Line 311  class LoadSessionTest(unittest.TestCase,
311                           [("default", (), "",                           [("default", (), "",
312                              ("#000000", 2, "None")),                              ("#000000", 2, "None")),
313                            ("range", (0, 1), "",                            ("range", (0, 1), "",
314                              ("#000000", 1, "None")),                              ("#111111", 1, "None")),
315                            ("single", .5, "",                            ("single", .5, "",
316                              ("#000000", 1, "None")),                              ("#000000", 1, "#111111")),
317                            ("range", (-1, 0), "",                            ("range", (-1, 0), "",
318                              ("#000000", 1, "None")),                              ("#000000", 1, "None")),
319                            ("single", -.5, "",                            ("single", -.5, "",
# Line 283  class LoadSessionTest(unittest.TestCase, Line 383  class LoadSessionTest(unittest.TestCase,
383    
384          self.TestLayers(map.Layers(), expected)          self.TestLayers(map.Layers(), expected)
385    
386        def testLayerProjection(self):
387            eq = self.assertEquals
388            neq = self.assertNotEqual
389    
390            session = load_session(self.temp_file_name("load_layerproj.thuban"))
391            self.session = session
392    
393            map = self.session.Maps()[0] # only one map in the sample
394    
395            layers = map.Layers() # two layers in the sample
396    
397            # test layer with a named projection
398            proj = layers[0].GetProjection()
399            neq(proj, None)
400            eq(proj.GetName(), "hello")
401            eq(proj.GetParameter("proj"), "tmerc")
402            eq(proj.GetParameter("zone"), "13")
403            eq(proj.GetParameter("ellps"), "clrk66")
404    
405            # test layer with an unnamed projection
406            proj = layers[1].GetProjection()
407            neq(proj, None)
408            eq(proj.GetName(), "Unknown")
409            eq(proj.GetParameter("proj"), "lcc")
410            eq(proj.GetParameter("ellps"), "clrk66")
411    
412        def testRasterLayer(self):
413            eq = self.assertEquals
414            neq = self.assertNotEqual
415    
416            session = load_session(self.temp_file_name("load_rasterlayer.thuban"))
417            self.session = session
418    
419            map = self.session.Maps()[0] # only one map in the sample
420    
421            layer = map.Layers()[0] # one layer in the sample
422    
423            eq(layer.Title(), "My RasterLayer")
424            self.failIf(layer.Visible())
425            self.failUnless(filenames_equal(layer.GetImageFilename(),
426                                            os.path.join(self.temp_dir(),
427                                                         os.pardir, os.pardir,
428                                                         "Data", "iceland",
429                                                         "island.tif")))
430    
431  if __name__ == "__main__":  if __name__ == "__main__":
432      unittest.main()      unittest.main()
433    

Legend:
Removed from v.691  
changed lines
  Added in v.947

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26