/[thuban]/trunk/thuban/test/test_save.py
ViewVC logotype

Diff of /trunk/thuban/test/test_save.py

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

revision 530 by jonathan, Wed Mar 12 19:58:00 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 27  support.initthuban() Line 27  support.initthuban()
27  from Thuban.Model.save import save_session  from Thuban.Model.save import save_session
28  from Thuban.Model.session import Session  from Thuban.Model.session import Session
29  from Thuban.Model.map import Map  from Thuban.Model.map import Map
30  from Thuban.Model.layer import Layer  from Thuban.Model.layer import Layer, RasterLayer
31  from Thuban.Model.proj import Projection  from Thuban.Model.proj import Projection
32    
33    
# Line 100  class SaveSessionTest(unittest.TestCase, Line 100  class SaveSessionTest(unittest.TestCase,
100          # use shapefile from the example data          # use shapefile from the example data
101          shpfile = os.path.join(os.path.dirname(__file__),          shpfile = os.path.join(os.path.dirname(__file__),
102                                 os.pardir, "Data", "iceland", "political.shp")                                 os.pardir, "Data", "iceland", "political.shp")
103          layer = Layer("My Layer", shpfile)          layer = Layer("My Layer", session.OpenShapefile(shpfile))
104            map.AddLayer(layer)
105    
106            filename = self.temp_file_name("save_singlemap.thuban")
107            save_session(session, filename)
108    
109            file = open(filename)
110            written_contents = file.read()
111            file.close()
112            expected_template = '''<?xml version="1.0" encoding="UTF-8"?>
113            <!DOCTYPE session SYSTEM "thuban.dtd">
114            <session title="single map&amp;layer">
115                <map title="Test Map">
116                    <projection name="Unknown">
117                        <parameter value="zone=26"/>
118                        <parameter value="proj=utm"/>
119                        <parameter value="ellps=clrk66"/>
120                    </projection>
121                    <layer title="My Layer" filename="%s"
122                    fill="None" stroke="#000000" stroke_width="1" visible="%s"/>
123                </map>
124            </session>'''
125            
126            expected_contents = expected_template % \
127                (os.path.join("..", "..", "Data", "iceland", "political.shp"),
128                 "true")
129    
130            #print written_contents
131            #print "********************************************"
132            #print expected_contents
133            self.compare_xml(written_contents, expected_contents)
134    
135            layer.SetVisible(False)
136            save_session(session, filename)
137    
138            file = open(filename)
139            written_contents = file.read()
140            file.close()
141            expected_contents = expected_template % \
142                (os.path.join("..", "..", "Data", "iceland", "political.shp"),
143                 "false")
144    
145            #print written_contents
146            #print "********************************************"
147            #print expected_contents
148            self.compare_xml(written_contents, expected_contents)
149    
150            session.Destroy()
151    
152        def testLayerProjection(self):
153            # deliberately put an apersand in the title :)
154            session = Session("single map&layer")
155            proj = Projection(["zone=26", "proj=utm", "ellps=clrk66"])
156            map = Map("Test Map", projection = proj)
157            session.AddMap(map)
158            # use shapefile from the example data
159            shpfile = os.path.join(os.path.dirname(__file__),
160                                   os.pardir, "Data", "iceland", "political.shp")
161            layer = Layer("My Layer", session.OpenShapefile(shpfile))
162            proj = Projection(["proj=lcc", "ellps=clrk66"], "Layer Projection")
163            layer.SetProjection(proj)
164          map.AddLayer(layer)          map.AddLayer(layer)
165    
166          filename = self.temp_file_name("save_singlemap.thuban")          filename = self.temp_file_name("save_singlemap.thuban")
# Line 114  class SaveSessionTest(unittest.TestCase, Line 174  class SaveSessionTest(unittest.TestCase,
174          <!DOCTYPE session SYSTEM "thuban.dtd">          <!DOCTYPE session SYSTEM "thuban.dtd">
175          <session title="single map&amp;layer">          <session title="single map&amp;layer">
176              <map title="Test Map">              <map title="Test Map">
177                  <projection>                  <projection name="Unknown">
178                      <parameter value="zone=26"/>                      <parameter value="zone=26"/>
179                      <parameter value="proj=utm"/>                      <parameter value="proj=utm"/>
180                      <parameter value="ellps=clrk66"/>                      <parameter value="ellps=clrk66"/>
181                  </projection>                  </projection>
182                  <layer title="My Layer" filename="%s"                  <layer title="My Layer" filename="%s"
183                  fill="None" stroke="#000000" stroke_width="1"/>                  fill="None" stroke="#000000" stroke_width="1" visible="true">
184                        <projection name="Layer Projection">
185                            <parameter value="proj=lcc"/>
186                            <parameter value="ellps=clrk66"/>
187                        </projection>
188                    </layer>
189              </map>              </map>
190          </session>''' % os.path.join("..", "..", "Data", "iceland",          </session>''' % os.path.join("..", "..", "Data", "iceland",
191                                       "political.shp")                                       "political.shp")
# Line 129  class SaveSessionTest(unittest.TestCase, Line 194  class SaveSessionTest(unittest.TestCase,
194          #print expected_contents          #print expected_contents
195          self.compare_xml(written_contents, expected_contents)          self.compare_xml(written_contents, expected_contents)
196    
197            
198        def testRasterLayer(self):
199            # deliberately put an apersand in the title :)
200            session = Session("single map&layer")
201            map = Map("Test Map")
202            session.AddMap(map)
203            # use shapefile from the example data
204            imgfile = os.path.join(os.path.dirname(__file__),
205                                   os.pardir, "Data", "iceland", "island.tif")
206            layer = RasterLayer("My RasterLayer", imgfile)
207            map.AddLayer(layer)
208                                                                                    
209            filename = self.temp_file_name("save_singlemap.thuban")
210            save_session(session, filename)
211            session.Destroy()
212                                                                                    
213            file = open(filename)
214            written_contents = file.read()
215            file.close()
216            expected_contents = '''<?xml version="1.0" encoding="UTF-8"?>
217            <!DOCTYPE session SYSTEM "thuban.dtd">
218            <session title="single map&amp;layer">
219                <map title="Test Map">
220                    <rasterlayer title="My RasterLayer" filename="%s"
221                                 visible="true">
222                    </rasterlayer>
223                </map>
224            </session>''' % os.path.join(os.path.dirname(__file__),
225                                         os.pardir, "Data", "iceland",
226                                         "island.tif")
227            #print written_contents
228            #print "********************************************"
229            #print expected_contents
230            self.compare_xml(written_contents, expected_contents)
231    
232    
233  if __name__ == "__main__":  if __name__ == "__main__":
234      # Fake the __file__ global because it's needed by a test      # Fake the __file__ global because it's needed by a test
235      import sys      import sys
236      __file__ = sys.argv[0]      __file__ = sys.argv[0]
237      unittest.main()      support.run_tests()

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26