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

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

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

revision 714 by jonathan, Wed Apr 23 08:47:05 2003 UTC revision 742 by jonathan, Fri Apr 25 09:14:41 2003 UTC
# Line 14  __version__ = "$Revision$" Line 14  __version__ = "$Revision$"
14  # $Id$  # $Id$
15    
16  import unittest  import unittest
17    import os
18    
19  import support  import support
20  support.initthuban()  support.initthuban()
# Line 24  import Thuban.Model.resource as resource Line 25  import Thuban.Model.resource as resource
25    
26  from test_save import sax_eventlist  from test_save import sax_eventlist
27    
28    from xml.sax import SAXParseException
29    
30    
31  class TestProjection(unittest.TestCase, support.FloatComparisonMixin):  class TestProjection(unittest.TestCase, support.FloatComparisonMixin):
32    
# Line 111  class TestProjFile(unittest.TestCase, su Line 114  class TestProjFile(unittest.TestCase, su
114      def compare_xml(self, xml1, xml2):      def compare_xml(self, xml1, xml2):
115          self.assertEquals(sax_eventlist(xml1), sax_eventlist(xml2))          self.assertEquals(sax_eventlist(xml1), sax_eventlist(xml2))
116    
117        def test(self):
118            """Test ProjFile"""
119    
120            proj0 = Projection(["proj=tmerc", "ellps=clrk66"])
121            proj1 = Projection(["proj=utm", "ellps=clrk66"])
122            proj2 = Projection(["proj=lcc", "ellps=clrk66"])
123    
124            eq = self.assertEquals
125    
126            #
127            # __init__()
128            # GetFilename()
129            # SetFilename()
130            #
131            for name in ["", "hello_world"]:
132                projFile = ProjFile(name)
133                eq(projFile.GetFilename(), name)
134    
135                projFile.SetFilename("XXX")
136                projFile.SetFilename(name)
137                eq(projFile.GetFilename(), name)
138    
139            # initial number of projections should be 0
140            eq(len(projFile.GetProjections()), 0)
141    
142            #
143            # Add()
144            # Remove()
145            #
146            projFile.Add(proj0)
147            eq(len(projFile.GetProjections()), 1)
148            projFile.Remove(proj0)
149            eq(len(projFile.GetProjections()), 0)
150    
151            # try to remove something that doesn't exist
152            self.assertRaises(ValueError, projFile.Remove, proj0)
153    
154            projFile.Add(proj0)
155            projFile.Add(proj1)
156            projFile.Add(proj2)
157            eq(len(projFile.GetProjections()), 3)
158    
159            # GetProjections() -- tests order
160            projs = projFile.GetProjections()
161            eq(projs[0], proj0)
162            eq(projs[1], proj1)
163            eq(projs[2], proj2)
164    
165      def testRead(self):      def testRead(self):
166          """Test ReadProjFile"""          """Test ReadProjFile"""
167    
168          self.doTestRead(sample_projfile_data, sample_projfile)          self.doTestRead(sample_projfile_data, sample_projfile)
169          self.doTestRead(sample_projfile_data2, sample_projfile2)          self.doTestRead(sample_projfile_data2, sample_projfile2)
170    
171            #
172            # file doesn't exist
173            #
174            self.assertRaises(IOError,
175                resource.ReadProjFile, self.temp_file_name("nonexistent.proj"))
176    
177            #
178            # file isn't readable
179            #
180            filename = self.temp_file_name("projfile.proj")
181            file = open(filename, "w")
182            file.close()
183            os.chmod(filename, 0200) # write-only
184            self.assertRaises(IOError, resource.ReadProjFile, filename)
185            os.chmod(filename, 0600) # read/write so we reuse the file
186    
187            #
188            # file has invalid XML (or none at all)
189            #
190            filename = self.temp_file_name("projfile.proj")
191            file = open(filename, "w")
192            file.close()
193    
194            self.assertRaises(SAXParseException, resource.ReadProjFile, filename)
195    
196      def testWrite(self):      def testWrite(self):
197          """Test WriteProjFile"""          """Test WriteProjFile"""
198    
# Line 149  class TestProjFile(unittest.TestCase, su Line 225  class TestProjFile(unittest.TestCase, su
225    
226          eq = self.assertEquals          eq = self.assertEquals
227    
228          eq(pf.GetFileName(), filename)          eq(pf.GetFilename(), filename)
229    
230          for proj, d in zip(pf.GetProjections(), data):          for proj, d in zip(pf.GetProjections(), data):
231              eq(proj.GetName(), d[0])              eq(proj.GetName(), d[0])

Legend:
Removed from v.714  
changed lines
  Added in v.742

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26