/[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 1357 by jonathan, Wed Jul 2 09:38:27 2003 UTC revision 1417 by bh, Tue Jul 15 08:43:53 2003 UTC
# Line 66  class XMLWriterTest(unittest.TestCase): Line 66  class XMLWriterTest(unittest.TestCase):
66  class SaveSessionTest(unittest.TestCase, support.FileTestMixin,  class SaveSessionTest(unittest.TestCase, support.FileTestMixin,
67                        xmlsupport.ValidationTest):                        xmlsupport.ValidationTest):
68    
69      dtd = "http://thuban.intevation.org/dtds/thuban-0.8.dtd"      dtd = "http://thuban.intevation.org/dtds/thuban-0.9-dev.dtd"
70      thubanids = [((dtd, n), (None, "id")) for n in      thubanids = [((dtd, n), (None, "id")) for n in
71                   ["fileshapesource", "filetable", "jointable",                   ["fileshapesource", "filetable", "jointable",
72                    "derivedshapesource"]]                    "derivedshapesource"]]
# Line 79  class SaveSessionTest(unittest.TestCase, Line 79  class SaveSessionTest(unittest.TestCase,
79      del n, m, dtd      del n, m, dtd
80    
81      def compare_xml(self, xml1, xml2):      def compare_xml(self, xml1, xml2):
82          if 0:          list1 = xmlsupport.sax_eventlist(xml1, ids = self.thubanids,
83              for a, b in zip(sax_eventlist(xml1, self.thubanids,                                           idrefs = self.thubanidrefs)
84                                          self.thubanidrefs),          list2 = xmlsupport.sax_eventlist(xml2, ids = self.thubanids,
85                            sax_eventlist(xml2, self.thubanids,                                           idrefs = self.thubanidrefs)
86                                          self.thubanidrefs)):          if list1 != list2:
87                print a == b and ' ' or '*****'              for a, b in zip(list1, list2):
88                print a                  if a != b:
89                print b                      self.fail("%r != %r" % (a, b))
90          self.assertEquals(xmlsupport.sax_eventlist(xml1, ids = self.thubanids,  
                                                    idrefs = self.thubanidrefs),  
                           xmlsupport.sax_eventlist(xml2, ids = self.thubanids,  
                                                    idrefs = self.thubanidrefs))  
91    
92      def testEmptySession(self):      def testEmptySession(self):
93          """Save an empty session"""          """Save an empty session"""
# Line 104  class SaveSessionTest(unittest.TestCase, Line 101  class SaveSessionTest(unittest.TestCase,
101          file.close()          file.close()
102          self.compare_xml(written_contents,          self.compare_xml(written_contents,
103                           '<?xml version="1.0" encoding="UTF-8"?>\n'                           '<?xml version="1.0" encoding="UTF-8"?>\n'
104                           '<!DOCTYPE session SYSTEM "thuban-0.8.dtd">\n'                           '<!DOCTYPE session SYSTEM "thuban-0.9.dtd">\n'
105                           '<session title="empty session" '                           '<session title="empty session" '
106           'xmlns="http://thuban.intevation.org/dtds/thuban-0.8.dtd">'           'xmlns="http://thuban.intevation.org/dtds/thuban-0.9-dev.dtd">'
107                           '\n</session>\n')                           '\n</session>\n')
108    
109          self.validate_data(written_contents)          self.validate_data(written_contents)
# Line 131  class SaveSessionTest(unittest.TestCase, Line 128  class SaveSessionTest(unittest.TestCase,
128          written_contents = file.read()          written_contents = file.read()
129          file.close()          file.close()
130          expected_template = '''<?xml version="1.0" encoding="UTF-8"?>          expected_template = '''<?xml version="1.0" encoding="UTF-8"?>
131          <!DOCTYPE session SYSTEM "thuban-0.8.dtd">          <!DOCTYPE session SYSTEM "thuban-0.9.dtd">
132          <session title="single map&amp;layer"          <session title="single map&amp;layer"
133             xmlns="http://thuban.intevation.org/dtds/thuban-0.8.dtd">             xmlns="http://thuban.intevation.org/dtds/thuban-0.9-dev.dtd">
134              <fileshapesource id="D1" filename="%s" filetype="shapefile"/>              <fileshapesource id="D1" filename="%s" filetype="shapefile"/>
135              <map title="Test Map">              <map title="Test Map">
136                  <projection name="Unknown">                  <projection name="Unknown">
# Line 191  class SaveSessionTest(unittest.TestCase, Line 188  class SaveSessionTest(unittest.TestCase,
188          written_contents = file.read()          written_contents = file.read()
189          file.close()          file.close()
190          expected_contents = '''<?xml version="1.0" encoding="UTF-8"?>          expected_contents = '''<?xml version="1.0" encoding="UTF-8"?>
191          <!DOCTYPE session SYSTEM "thuban-0.8.dtd">          <!DOCTYPE session SYSTEM "thuban-0.9.dtd">
192          <session title="single map&amp;layer"          <session title="single map&amp;layer"
193             xmlns="http://thuban.intevation.org/dtds/thuban-0.8.dtd">             xmlns="http://thuban.intevation.org/dtds/thuban-0.9-dev.dtd">
194              <fileshapesource id="D1" filename="%s" filetype="shapefile"/>              <fileshapesource id="D1" filename="%s" filetype="shapefile"/>
195              <map title="Test Map">              <map title="Test Map">
196                  <projection name="Unknown">                  <projection name="Unknown">
# Line 237  class SaveSessionTest(unittest.TestCase, Line 234  class SaveSessionTest(unittest.TestCase,
234          written_contents = file.read()          written_contents = file.read()
235          file.close()          file.close()
236          expected_contents = '''<?xml version="1.0" encoding="UTF-8"?>          expected_contents = '''<?xml version="1.0" encoding="UTF-8"?>
237          <!DOCTYPE session SYSTEM "thuban-0.8.dtd">          <!DOCTYPE session SYSTEM "thuban-0.9.dtd">
238          <session title="single map&amp;layer"          <session title="single map&amp;layer"
239             xmlns="http://thuban.intevation.org/dtds/thuban-0.8.dtd">             xmlns="http://thuban.intevation.org/dtds/thuban-0.9-dev.dtd">
240              <map title="Test Map">              <map title="Test Map">
241                  <rasterlayer title="My RasterLayer" filename="%s"                  <rasterlayer title="My RasterLayer" filename="%s"
242                               visible="true">                               visible="true">
# Line 256  class SaveSessionTest(unittest.TestCase, Line 253  class SaveSessionTest(unittest.TestCase,
253          self.validate_data(written_contents)          self.validate_data(written_contents)
254    
255      def testClassifiedLayer(self):      def testClassifiedLayer(self):
256          """Save a session with a single map with a single layer          """Save a session with a single map with classifications"""
            with a classificaton.  
         """  
257          # deliberately put an apersand in the title :)          # deliberately put an apersand in the title :)
258          session = Session("single map&layer")          session = Session("Map with Classifications")
259          proj = Projection(["zone=26", "proj=utm", "ellps=clrk66"])          proj = Projection(["zone=26", "proj=utm", "ellps=clrk66"])
260          map = Map("Test Map", projection = proj)          map = Map("Test Map", projection = proj)
261          session.AddMap(map)          session.AddMap(map)
# Line 269  class SaveSessionTest(unittest.TestCase, Line 264  class SaveSessionTest(unittest.TestCase,
264                                 os.pardir, "Data", "iceland", "political.shp")                                 os.pardir, "Data", "iceland", "political.shp")
265          layer = Layer("My Layer", session.OpenShapefile(shpfile))          layer = Layer("My Layer", session.OpenShapefile(shpfile))
266          map.AddLayer(layer)          map.AddLayer(layer)
267            layer2 = Layer("My Layer", layer.ShapeStore())
268            map.AddLayer(layer2)
269    
270          clazz = layer.GetClassification()          clazz = layer.GetClassification()
271    
272          clazz.SetFieldInfo("AREA", None)          clazz.SetFieldInfo("AREA", None)
273    
274          clazz.AppendGroup(ClassGroupSingleton(42,          clazz.AppendGroup(ClassGroupSingleton(42, ClassGroupProperties(),
275                                             ClassGroupProperties(),                                                "single"))
276                                             "single"))          clazz.AppendGroup(ClassGroupSingleton("text", ClassGroupProperties(),
277          clazz.AppendGroup(ClassGroupSingleton("text",                                                "single-text"))
                                            ClassGroupProperties(),  
                                            "single-text"))  
278    
279          clazz.AppendGroup(ClassGroupRange((0, 42),          clazz.AppendGroup(ClassGroupRange((0, 42),
280                                             ClassGroupProperties(),                                             ClassGroupProperties(),
# Line 290  class SaveSessionTest(unittest.TestCase, Line 285  class SaveSessionTest(unittest.TestCase,
285          range.SetLabel("new-range")          range.SetLabel("new-range")
286          clazz.AppendGroup(range)          clazz.AppendGroup(range)
287    
288          filename = self.temp_file_name("save_singlemap.thuban")  
289            clazz = layer2.GetClassification()
290            clazz.SetFieldInfo("POPYCOUN", None)
291    
292            # Classification with Latin 1 text
293            clazz.AppendGroup(ClassGroupSingleton('\xe4\xf6\xfc', # ae, oe, ue
294                                                  ClassGroupProperties(),
295                                                  '\xdcml\xe4uts')) # Uemlaeuts
296    
297    
298            filename = self.temp_file_name("%s.thuban" % self.id())
299          save_session(session, filename)          save_session(session, filename)
300    
301          file = open(filename)          file = open(filename)
302          written_contents = file.read()          written_contents = file.read()
303          file.close()          file.close()
304          expected_template = '''<?xml version="1.0" encoding="UTF-8"?>          expected_template = '''<?xml version="1.0" encoding="UTF-8"?>
305          <!DOCTYPE session SYSTEM "thuban-0.8.dtd">          <!DOCTYPE session SYSTEM "thuban-0.9.dtd">
306          <session title="single map&amp;layer"          <session title="Map with Classifications"
307             xmlns="http://thuban.intevation.org/dtds/thuban-0.8.dtd">             xmlns="http://thuban.intevation.org/dtds/thuban-0.9-dev.dtd">
308              <fileshapesource id="D1" filename="%s" filetype="shapefile"/>              <fileshapesource id="D1" filename="%s" filetype="shapefile"/>
309              <map title="Test Map">              <map title="Test Map">
310                  <projection name="Unknown">                  <projection name="Unknown">
# Line 327  class SaveSessionTest(unittest.TestCase, Line 332  class SaveSessionTest(unittest.TestCase,
332                          </clrange>                          </clrange>
333                      </classification>                      </classification>
334                  </layer>                  </layer>
335                    <layer title="My Layer" shapestore="D1"
336                    fill="None" stroke="#000000" stroke_width="1" visible="true">
337                        <classification field="POPYCOUN" field_type="string">
338                            <clnull label="">
339                                <cldata fill="None" stroke="#000000" stroke_width="1"/>
340                            </clnull>
341                            <clpoint value="\xc3\xa4\xc3\xb6\xc3\xbc"
342                                 label="\xc3\x9cml\xc3\xa4uts">
343                                <cldata fill="None" stroke="#000000" stroke_width="1"/>
344                            </clpoint>
345                        </classification>
346                    </layer>
347              </map>              </map>
348          </session>'''          </session>'''
349    
# Line 358  class SaveSessionTest(unittest.TestCase, Line 375  class SaveSessionTest(unittest.TestCase,
375          written_contents = file.read()          written_contents = file.read()
376          file.close()          file.close()
377          expected_template = '''<?xml version="1.0" encoding="UTF-8"?>          expected_template = '''<?xml version="1.0" encoding="UTF-8"?>
378          <!DOCTYPE session SYSTEM "thuban-0.8.dtd">          <!DOCTYPE session SYSTEM "thuban-0.9.dtd">
379          <session title="a DBF Table session"          <session title="a DBF Table session"
380             xmlns="http://thuban.intevation.org/dtds/thuban-0.8.dtd">             xmlns="http://thuban.intevation.org/dtds/thuban-0.9-dev.dtd">
381              <filetable id="D1" filename="%s" filetype="DBF" title="political"/>              <filetable id="D1" filename="%s" filetype="DBF" title="political"/>
382          </session>'''          </session>'''
383    
# Line 401  class SaveSessionTest(unittest.TestCase, Line 418  class SaveSessionTest(unittest.TestCase,
418              #    print col.name              #    print col.name
419              joined = TransientJoinedTable(session.TransientDB(),              joined = TransientJoinedTable(session.TransientDB(),
420                                            store.Table(), "RDLNTYPE",                                            store.Table(), "RDLNTYPE",
421                                            dbftable, "RDTYPE")                                            dbftable, "RDTYPE",
422                                              outer_join = True)
423              store = session.AddShapeStore(DerivedShapeStore(store, joined))              store = session.AddShapeStore(DerivedShapeStore(store, joined))
424              layer.SetShapeStore(store)              layer.SetShapeStore(store)
425    
# Line 414  class SaveSessionTest(unittest.TestCase, Line 432  class SaveSessionTest(unittest.TestCase,
432              written_contents = file.read()              written_contents = file.read()
433              file.close()              file.close()
434              expected_template = '''<?xml version="1.0" encoding="UTF-8"?>              expected_template = '''<?xml version="1.0" encoding="UTF-8"?>
435              <!DOCTYPE session SYSTEM "thuban-0.8.dtd">              <!DOCTYPE session SYSTEM "thuban-0.9.dtd">
436              <session title="A Joined Table session"              <session title="A Joined Table session"
437               xmlns="http://thuban.intevation.org/dtds/thuban-0.8.dtd">               xmlns="http://thuban.intevation.org/dtds/thuban-0.9-dev.dtd">
438                  <fileshapesource filename="%(shpfile)s"                  <fileshapesource filename="%(shpfile)s"
439                                   filetype="shapefile" id="D142197204"/>                                   filetype="shapefile" id="D142197204"/>
440                  <filetable filename="%(dbffile)s"                  <filetable filename="%(dbffile)s"
# Line 425  class SaveSessionTest(unittest.TestCase, Line 443  class SaveSessionTest(unittest.TestCase,
443                  <jointable id="D142180284"                  <jointable id="D142180284"
444                             title="Join of roads-line and save_joinedtable"                             title="Join of roads-line and save_joinedtable"
445                             leftcolumn="RDLNTYPE" left="D142197204"                             leftcolumn="RDLNTYPE" left="D142197204"
446                             rightcolumn="RDTYPE" right="D141881756"/>                             rightcolumn="RDTYPE" right="D141881756"
447                               jointype="LEFT OUTER" />
448                  <derivedshapesource id="D141915644"                  <derivedshapesource id="D141915644"
449                                      table="D142180284"                                      table="D142180284"
450                                      shapesource="D142197204"/>                                      shapesource="D142197204"/>

Legend:
Removed from v.1357  
changed lines
  Added in v.1417

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26