/[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 1821 by bh, Tue Oct 14 13:54:03 2003 UTC revision 1825 by bh, Tue Oct 14 15:21:17 2003 UTC
# Line 23  support.initthuban() Line 23  support.initthuban()
23  from Thuban import _  from Thuban import _
24  from Thuban.Model.proj import Projection, ProjFile, \  from Thuban.Model.proj import Projection, ProjFile, \
25       PROJ_UNITS_METERS, PROJ_UNITS_DEGREES       PROJ_UNITS_METERS, PROJ_UNITS_DEGREES
26    from Thuban.Model.messages import PROJECTION_ADDED, PROJECTION_REMOVED, \
27         PROJECTION_REPLACED
28  import Thuban.Model.resource as resource  import Thuban.Model.resource as resource
29    
30  from xmlsupport import sax_eventlist  from xmlsupport import sax_eventlist
# Line 130  class TestProjFileSimple: Line 131  class TestProjFileSimple:
131          self.assertEquals(proj_file.GetFilename(), "other_name")          self.assertEquals(proj_file.GetFilename(), "other_name")
132    
133    
134  class TestProjFile(unittest.TestCase):  class TestProjFile(unittest.TestCase, support.SubscriberMixin):
135    
136      """Test cases for reading and writing projection files.      """Test cases for reading and writing projection files.
137      """      """
138    
139      def setUp(self):      def setUp(self):
140            self.clear_messages()
141          self.proj0 = Projection(["proj=tmerc", "ellps=clrk66"])          self.proj0 = Projection(["proj=tmerc", "ellps=clrk66"])
142          self.proj1 = Projection(["proj=utm", "ellps=clrk66"])          self.proj1 = Projection(["proj=utm", "ellps=clrk66"])
143          self.proj2 = Projection(["proj=lcc", "ellps=clrk66",          self.proj2 = Projection(["proj=lcc", "ellps=clrk66",
144                                   "lat_1=0", "lat_2=20"])                                   "lat_1=0", "lat_2=20"])
145            self.proj_file = ProjFile("some_filename")
146            for msg in [PROJECTION_ADDED, PROJECTION_REMOVED, PROJECTION_REPLACED]:
147                self.proj_file.Subscribe(msg, self.subscribe_with_params, msg)
148    
149      def test_add_remove(self):      def test_add_remove(self):
150          """Test ProjFile.Add() and ProjFile.Remove()"""          """Test ProjFile.Add() and ProjFile.Remove()"""
151          proj_file = ProjFile("some_filename")          self.proj_file.Add(self.proj0)
152          proj_file.Add(self.proj0)          self.proj_file.Add(self.proj1)
153          proj_file.Add(self.proj1)          self.assertEquals(self.proj_file.GetProjections(),
154          self.assertEquals(proj_file.GetProjections(), [self.proj0, self.proj1])                            [self.proj0, self.proj1])
155          proj_file.Remove(self.proj0)          self.check_messages([(self.proj0, PROJECTION_ADDED),
156          self.assertEquals(proj_file.GetProjections(), [self.proj1])                               (self.proj1, PROJECTION_ADDED)])
157            self.clear_messages()
158    
159            self.proj_file.Remove(self.proj0)
160            self.assertEquals(self.proj_file.GetProjections(), [self.proj1])
161            self.check_messages([(self.proj0, PROJECTION_REMOVED)])
162    
163      def test_remove_non_existing(self):      def test_remove_non_existing(self):
164          """Test ProjFile.Remove(<proj not in projfile>)"""          """Test ProjFile.Remove(<proj not in projfile>)"""
165          proj_file = ProjFile("some_filename")          self.assertRaises(ValueError, self.proj_file.Remove, self.proj0)
166          self.assertRaises(ValueError, proj_file.Remove, self.proj0)          # Nothing happened, so no messages should have been sent
167            self.check_messages([])
168    
169      def test_replace(self):      def test_replace(self):
170          """Test ProjFile.Replace()"""          """Test ProjFile.Replace()"""
171          proj_file = ProjFile("some_filename")          self.proj_file.Add(self.proj0)
172          proj_file.Add(self.proj0)          self.proj_file.Add(self.proj1)
173          proj_file.Add(self.proj1)          self.clear_messages()
174    
175          # Replace()          # Replace()
176          proj_file.Replace(self.proj0, self.proj2)          self.proj_file.Replace(self.proj0, self.proj2)
177          self.assertEquals(proj_file.GetProjections(), [self.proj2, self.proj1])          self.assertEquals(self.proj_file.GetProjections(),
178                              [self.proj2, self.proj1])
179            self.check_messages([(self.proj0, self.proj2, PROJECTION_REPLACED)])
180    
181      def test_replace_non_existing(self):      def test_replace_non_existing(self):
182          """Test ProjFile.Replace(<proj not in projfile>, <some proj>)"""          """Test ProjFile.Replace(<proj not in projfile>, <some proj>)"""
183          proj_file = ProjFile("some_filename")          self.proj_file.Add(self.proj0)
184          proj_file.Add(self.proj0)          self.proj_file.Add(self.proj1)
185          proj_file.Add(self.proj1)          self.clear_messages()
186          self.assertRaises(ValueError,          self.assertRaises(ValueError,
187                            proj_file.Replace, self.proj2, self.proj0)                            self.proj_file.Replace, self.proj2, self.proj0)
188            # All projections should still be there
189            self.assertEquals(self.proj_file.GetProjections(),
190                              [self.proj0, self.proj1])
191            # Nothing happened, so no messages should have been sent
192            self.check_messages([])
193    
194    
195  class ProjFileTest(unittest.TestCase, support.FileTestMixin,  class ProjFileTest(unittest.TestCase, support.FileTestMixin,

Legend:
Removed from v.1821  
changed lines
  Added in v.1825

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26