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

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

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

revision 409 by jonathan, Wed Feb 19 16:50:39 2003 UTC revision 1400 by jonathan, Thu Jul 10 14:56:15 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 20  import support Line 20  import support
20  support.initthuban()  support.initthuban()
21    
22  from Thuban.Model.messages import CHANGED, MAP_PROJECTION_CHANGED, \  from Thuban.Model.messages import CHANGED, MAP_PROJECTION_CHANGED, \
23       LAYERS_CHANGED, LAYER_VISIBILITY_CHANGED, LAYER_LEGEND_CHANGED       MAP_LAYERS_CHANGED, MAP_LAYERS_ADDED, MAP_LAYERS_REMOVED,\
24         MAP_STACKING_CHANGED, LAYER_VISIBILITY_CHANGED, LAYER_LEGEND_CHANGED, \
25         LAYER_CHANGED
26    
27    from Thuban.Model.session import Session
28  from Thuban.Model.map import Map  from Thuban.Model.map import Map
29  from Thuban.Model.layer import Layer  from Thuban.Model.layer import Layer
30  from Thuban.Model.proj import Projection  from Thuban.Model.proj import Projection
# Line 63  class TestMapBase(unittest.TestCase, sup Line 67  class TestMapBase(unittest.TestCase, sup
67    
68          # Create a Map and subscribe to all interesting channels.          # Create a Map and subscribe to all interesting channels.
69          self.map = Map("Test Map")          self.map = Map("Test Map")
70          for channel in (CHANGED, MAP_PROJECTION_CHANGED, LAYERS_CHANGED,          for channel in (CHANGED,
71                          LAYER_VISIBILITY_CHANGED, LAYER_LEGEND_CHANGED):                          MAP_PROJECTION_CHANGED,
72                            MAP_LAYERS_CHANGED,
73                            MAP_LAYERS_ADDED,
74                            MAP_LAYERS_REMOVED,
75                            MAP_STACKING_CHANGED,
76                            LAYER_VISIBILITY_CHANGED,
77                            LAYER_LEGEND_CHANGED,
78                            LAYER_CHANGED):
79              self.map.Subscribe(channel, self.subscribe_with_params, channel)              self.map.Subscribe(channel, self.subscribe_with_params, channel)
80    
81      def tearDown(self):      def tearDown(self):
# Line 80  class TestMapAddLayer(TestMapBase): Line 91  class TestMapAddLayer(TestMapBase):
91      def test_add_layer(self):      def test_add_layer(self):
92          """Test Map.AddLayer"""          """Test Map.AddLayer"""
93          # make sure the created Map is unmodified          # make sure the created Map is unmodified
94            session = Session("Test session for %s" % self.__class__)
95          self.failIf(self.map.WasModified())          self.failIf(self.map.WasModified())
96          self.failIf(self.map.HasLayers())          self.failIf(self.map.HasLayers())
97    
98          # add a layer and check the result          # add a layer and check the result
99          roads = Layer("Roads",          filename = os.path.join("..", "Data", "iceland", "roads-line.shp")
100                        os.path.join("..", "Data", "iceland", "roads-line.shp"))          roads = Layer("Roads", session.OpenShapefile(filename))
101          self.map.AddLayer(roads)          self.map.AddLayer(roads)
102          self.assertEquals(self.map.Layers(), [roads])          self.assertEquals(self.map.Layers(), [roads])
103          self.check_messages([(self.map, LAYERS_CHANGED)])          self.check_messages([(self.map, MAP_LAYERS_CHANGED),
104                                 (self.map, MAP_LAYERS_ADDED)])
105          self.assert_(self.map.WasModified())          self.assert_(self.map.WasModified())
106          self.assert_(self.map.HasLayers())          self.assert_(self.map.HasLayers())
107    
# Line 108  class TestMapWithContents(TestMapBase, s Line 121  class TestMapWithContents(TestMapBase, s
121          received messages is empty.          received messages is empty.
122          """          """
123          TestMapBase.setUp(self)          TestMapBase.setUp(self)
124            self.session = Session("Test session for %s" % self.__class__)
125            open_shp = self.session.OpenShapefile
126          self.arc_layer = Layer("Roads",          self.arc_layer = Layer("Roads",
127                                 os.path.join("..", "Data", "iceland",                                 open_shp(os.path.join("..", "Data", "iceland",
128                                              "roads-line.shp"))                                                       "roads-line.shp")))
129          self.poly_layer = Layer("Political",          self.poly_layer = Layer("Political",
130                                  os.path.join("..", "Data", "iceland",                                  open_shp(os.path.join("..", "Data", "iceland",
131                                               "political.shp"))                                                        "political.shp")))
132          self.map.AddLayer(self.arc_layer)          self.map.AddLayer(self.arc_layer)
133          self.map.AddLayer(self.poly_layer)          self.map.AddLayer(self.poly_layer)
134          self.map.UnsetModified()          self.map.UnsetModified()
135          self.clear_messages()          self.clear_messages()
136    
137        def tearDown(self):
138            TestMapBase.tearDown(self)
139            self.session = None
140            self.map = None
141            self.poly_layer = self.arc_layer = None
142    
143      def test_remove_layer(self):      def test_remove_layer(self):
144          """Test Map.RemoveLayer"""          """Test Map.RemoveLayer"""
145          self.map.RemoveLayer(self.arc_layer)          self.map.RemoveLayer(self.arc_layer)
146          self.assert_(self.map.WasModified())          self.assert_(self.map.WasModified())
147          self.assertEquals(self.map.Layers(), [self.poly_layer])          self.assertEquals(self.map.Layers(), [self.poly_layer])
148          self.map.UnsetModified()          self.map.UnsetModified()
149          self.check_messages([(self.map, LAYERS_CHANGED),          self.check_messages([(self.map, MAP_LAYERS_CHANGED),
150                                 (self.map, MAP_LAYERS_REMOVED),
151                               (CHANGED,)])                               (CHANGED,)])
152    
153      def test_clear_layers(self):      def test_clear_layers(self):
# Line 133  class TestMapWithContents(TestMapBase, s Line 155  class TestMapWithContents(TestMapBase, s
155          self.map.ClearLayers()          self.map.ClearLayers()
156          self.assertEquals(self.map.Layers(), [])          self.assertEquals(self.map.Layers(), [])
157          self.assertEquals(self.map.LabelLayer().Labels(), [])          self.assertEquals(self.map.LabelLayer().Labels(), [])
158          self.check_messages([(LAYERS_CHANGED,),          self.check_messages([(MAP_LAYERS_CHANGED,),
159                               (self.map, LAYERS_CHANGED)])                               (self.map, MAP_LAYERS_CHANGED),
160                                 (self.map, MAP_LAYERS_REMOVED)])
161          self.assert_(self.map.WasModified())          self.assert_(self.map.WasModified())
162          self.failIf(self.map.HasLayers())          self.failIf(self.map.HasLayers())
163    
# Line 142  class TestMapWithContents(TestMapBase, s Line 165  class TestMapWithContents(TestMapBase, s
165          """Test Map.RaiseLayer"""          """Test Map.RaiseLayer"""
166          self.map.RaiseLayer(self.arc_layer)          self.map.RaiseLayer(self.arc_layer)
167          self.assertEquals(self.map.Layers(), [self.poly_layer, self.arc_layer])          self.assertEquals(self.map.Layers(), [self.poly_layer, self.arc_layer])
168          self.check_messages([(self.map, LAYERS_CHANGED)])          self.check_messages([(self.map, MAP_LAYERS_CHANGED),
169                                 (self.map, MAP_STACKING_CHANGED)])
170            self.assert_(self.map.WasModified())
171    
172        def test_raise_layer_top(self):
173            """Test Map.MoveLayerToTop"""
174            open_shp = self.session.OpenShapefile
175            dummy = Layer("Roads",
176                          open_shp(os.path.join("..", "Data", "iceland",
177                                                "roads-line.shp")))
178            self.map.AddLayer(dummy)
179            self.clear_messages()
180    
181            self.map.MoveLayerToTop(self.poly_layer)
182            self.assertEquals(self.map.Layers(),
183                              [self.arc_layer, dummy, self.poly_layer])
184            self.check_messages([(self.map, MAP_LAYERS_CHANGED),
185                                 (self.map, MAP_STACKING_CHANGED)])
186          self.assert_(self.map.WasModified())          self.assert_(self.map.WasModified())
187    
188            self.map.RemoveLayer(dummy)
189    
190        def test_lower_layer_bottom(self):
191            """Test Map.MoveLayerToBottom"""
192            open_shp = self.session.OpenShapefile
193            dummy = Layer("Roads",
194                          open_shp(os.path.join("..", "Data", "iceland",
195                                                "roads-line.shp")))
196            self.map.AddLayer(dummy)
197            self.clear_messages()
198    
199            self.map.MoveLayerToBottom(dummy)
200            self.assertEquals(self.map.Layers(),
201                              [dummy, self.arc_layer, self.poly_layer])
202            self.check_messages([(self.map, MAP_LAYERS_CHANGED),
203                                 (self.map, MAP_STACKING_CHANGED)])
204            self.assert_(self.map.WasModified())
205    
206            self.map.RemoveLayer(dummy)
207    
208      def test_raise_highest_layer(self):      def test_raise_highest_layer(self):
209          """Test Map.RaiseLayer with highest layer          """Test Map.RaiseLayer with highest layer
210    
# Line 160  class TestMapWithContents(TestMapBase, s Line 220  class TestMapWithContents(TestMapBase, s
220          """Test Map.LowerLayer"""          """Test Map.LowerLayer"""
221          self.map.LowerLayer(self.poly_layer)          self.map.LowerLayer(self.poly_layer)
222          self.assertEquals(self.map.Layers(), [self.poly_layer, self.arc_layer])          self.assertEquals(self.map.Layers(), [self.poly_layer, self.arc_layer])
223          self.check_messages([(self.map, LAYERS_CHANGED)])          self.check_messages([(self.map, MAP_LAYERS_CHANGED),
224                                 (self.map, MAP_STACKING_CHANGED)])
225          self.assert_(self.map.WasModified())          self.assert_(self.map.WasModified())
226    
227      def test_lower_lowest_layer(self):      def test_lower_lowest_layer(self):
# Line 193  class TestMapWithContents(TestMapBase, s Line 254  class TestMapWithContents(TestMapBase, s
254          """Test Map.SetProjection"""          """Test Map.SetProjection"""
255          proj = Projection(["zone=26", "proj=utm", "ellps=clrk66"])          proj = Projection(["zone=26", "proj=utm", "ellps=clrk66"])
256          self.map.SetProjection(proj)          self.map.SetProjection(proj)
257          self.check_messages([(self.map, MAP_PROJECTION_CHANGED)])          self.check_messages([(self.map, None, MAP_PROJECTION_CHANGED)])
258          self.assert_(self.map.WasModified())          self.assert_(self.map.WasModified())
259    
260      def test_tree_info(self):      def test_tree_info(self):
# Line 234  class TestMapWithContents(TestMapBase, s Line 295  class TestMapWithContents(TestMapBase, s
295          self.map.UnsetModified()          self.map.UnsetModified()
296          self.failIf(self.map.WasModified())          self.failIf(self.map.WasModified())
297          self.failIf(self.poly_layer.WasModified())          self.failIf(self.poly_layer.WasModified())
298          self.check_messages([(self.poly_layer, LAYER_LEGEND_CHANGED),          self.check_messages([(self.poly_layer, LAYER_CHANGED),
299                               (CHANGED,)                               (CHANGED,)])
                              ])  
300    
301  if __name__ == "__main__":  if __name__ == "__main__":
302      unittest.main()      support.run_tests()
303    

Legend:
Removed from v.409  
changed lines
  Added in v.1400

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26