/[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 292 by bh, Fri Aug 30 09:44:12 2002 UTC revision 755 by jonathan, Fri Apr 25 14:48:35 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)          map.AddLayer(layer)
105    
106          filename = self.temp_file_name("save_singlemap.thuban")          filename = self.temp_file_name("save_singlemap.thuban")
# Line 104  class SaveSessionTest(unittest.TestCase, Line 114  class SaveSessionTest(unittest.TestCase,
114          <!DOCTYPE session SYSTEM "thuban.dtd">          <!DOCTYPE session SYSTEM "thuban.dtd">
115          <session title="single map&amp;layer">          <session title="single map&amp;layer">
116              <map title="Test Map">              <map title="Test Map">
117                  <projection>                  <projection name="Unknown">
118                      <parameter value="zone=26"/>                      <parameter value="zone=26"/>
119                      <parameter value="proj=utm"/>                      <parameter value="proj=utm"/>
120                      <parameter value="ellps=clrk66"/>                      <parameter value="ellps=clrk66"/>
# Line 114  class SaveSessionTest(unittest.TestCase, Line 124  class SaveSessionTest(unittest.TestCase,
124              </map>              </map>
125          </session>''' % os.path.join("..", "..", "Data", "iceland",          </session>''' % os.path.join("..", "..", "Data", "iceland",
126                                       "political.shp")                                       "political.shp")
127            #print written_contents
128            #print "********************************************"
129            #print expected_contents
130          self.compare_xml(written_contents, expected_contents)          self.compare_xml(written_contents, expected_contents)
131    
132        def testLayerProjection(self):
133            # deliberately put an apersand in the title :)
134            session = Session("single map&layer")
135            proj = Projection(["zone=26", "proj=utm", "ellps=clrk66"])
136            map = Map("Test Map", projection = proj)
137            session.AddMap(map)
138            # use shapefile from the example data
139            shpfile = os.path.join(os.path.dirname(__file__),
140                                   os.pardir, "Data", "iceland", "political.shp")
141            layer = Layer("My Layer", session.OpenShapefile(shpfile))
142            proj = Projection(["proj=lcc", "ellps=clrk66"], "Layer Projection")
143            layer.SetProjection(proj)
144            map.AddLayer(layer)
145    
146            filename = self.temp_file_name("save_singlemap.thuban")
147            save_session(session, filename)
148            session.Destroy()
149    
150            file = open(filename)
151            written_contents = file.read()
152            file.close()
153            expected_contents = '''<?xml version="1.0" encoding="UTF-8"?>
154            <!DOCTYPE session SYSTEM "thuban.dtd">
155            <session title="single map&amp;layer">
156                <map title="Test Map">
157                    <projection name="Unknown">
158                        <parameter value="zone=26"/>
159                        <parameter value="proj=utm"/>
160                        <parameter value="ellps=clrk66"/>
161                    </projection>
162                    <layer title="My Layer" filename="%s"
163                    fill="None" stroke="#000000" stroke_width="1">
164                        <projection name="Layer Projection">
165                            <parameter value="proj=lcc"/>
166                            <parameter value="ellps=clrk66"/>
167                        </projection>
168                    </layer>
169                </map>
170            </session>''' % os.path.join("..", "..", "Data", "iceland",
171                                         "political.shp")
172            #print written_contents
173            #print "********************************************"
174            #print expected_contents
175            self.compare_xml(written_contents, expected_contents)
176    
177            
178    
179    
180    
181  if __name__ == "__main__":  if __name__ == "__main__":
182      # Fake the __file__ global because it's needed by a test      # Fake the __file__ global because it's needed by a test
183      import sys      import sys
184      __file__ = sys.argv[0]      __file__ = sys.argv[0]
185      unittest.main()      support.run_tests()

Legend:
Removed from v.292  
changed lines
  Added in v.755

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26