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

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

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

revision 494 by jonathan, Mon Mar 10 10:45:33 2003 UTC revision 775 by jonathan, Tue Apr 29 14:34:57 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 19  from StringIO import StringIO Line 19  from StringIO import StringIO
19    
20  import xml.sax  import xml.sax
21  import xml.sax.handler  import xml.sax.handler
22  from xml.sax import make_parser, ErrorHandler  from xml.sax import make_parser, ErrorHandler, SAXNotRecognizedException
23    
24  import support  import support
25  support.initthuban()  support.initthuban()
# Line 54  def sax_eventlist(data): Line 54  def sax_eventlist(data):
54      parser.setErrorHandler(ErrorHandler())      parser.setErrorHandler(ErrorHandler())
55      parser.setFeature(xml.sax.handler.feature_namespaces, 1)      parser.setFeature(xml.sax.handler.feature_namespaces, 1)
56    
57        #
58        # see comment at the end of Thuban/Model/load.py
59        #
60        try:
61            parser.setFeature(xml.sax.handler.feature_validation, 0)
62            parser.setFeature(xml.sax.handler.feature_external_ges, 0)
63            parser.setFeature(xml.sax.handler.feature_external_pes, 0)
64        except SAXNotRecognizedException:
65            pass
66    
67      inpsrc = xml.sax.InputSource()      inpsrc = xml.sax.InputSource()
68      inpsrc.setByteStream(StringIO(data))      inpsrc.setByteStream(StringIO(data))
69      parser.parse(inpsrc)      parser.parse(inpsrc)
# Line 90  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 104  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 119  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    
199    
200    
201  if __name__ == "__main__":  if __name__ == "__main__":
202      # Fake the __file__ global because it's needed by a test      # Fake the __file__ global because it's needed by a test
203      import sys      import sys
204      __file__ = sys.argv[0]      __file__ = sys.argv[0]
205      unittest.main()      support.run_tests()

Legend:
Removed from v.494  
changed lines
  Added in v.775

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26