/[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

trunk/thuban/test/test_map.py revision 343 by bh, Fri Oct 18 17:28:56 2002 UTC branches/WIP-pyshapelib-bramz/test/test_map.py revision 2734 by bramz, Thu Mar 1 12:42:59 2007 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):
82          """Destroy self.map and clear the message list"""          """Destroy self.map and self.session and clear the message list"""
83            if hasattr(self, "session"):
84                self.session.Destroy()
85                self.session = None
86          self.map.Destroy()          self.map.Destroy()
87            self.map = None
88          self.clear_messages()          self.clear_messages()
89    
90    
# Line 80  class TestMapAddLayer(TestMapBase): Line 95  class TestMapAddLayer(TestMapBase):
95      def test_add_layer(self):      def test_add_layer(self):
96          """Test Map.AddLayer"""          """Test Map.AddLayer"""
97          # make sure the created Map is unmodified          # make sure the created Map is unmodified
98            session = self.session = Session("Test session for %s" %self.__class__)
99          self.failIf(self.map.WasModified())          self.failIf(self.map.WasModified())
100          self.failIf(self.map.HasLayers())          self.failIf(self.map.HasLayers())
101    
102          # add a layer and check the result          # add a layer and check the result
103          roads = Layer("Roads",          filename = os.path.join("..", "Data", "iceland", "roads-line.shp")
104                        os.path.join("..", "Data", "iceland", "roads-line.shp"))          roads = Layer("Roads", session.OpenShapefile(filename))
105          self.map.AddLayer(roads)          self.map.AddLayer(roads)
106          self.assertEquals(self.map.Layers(), [roads])          self.assertEquals(self.map.Layers(), [roads])
107          self.check_messages([(self.map, LAYERS_CHANGED)])          self.check_messages([(self.map, MAP_LAYERS_CHANGED),
108                                 (self.map, MAP_LAYERS_ADDED)])
109          self.assert_(self.map.WasModified())          self.assert_(self.map.WasModified())
110          self.assert_(self.map.HasLayers())          self.assert_(self.map.HasLayers())
111    
# Line 108  class TestMapWithContents(TestMapBase, s Line 125  class TestMapWithContents(TestMapBase, s
125          received messages is empty.          received messages is empty.
126          """          """
127          TestMapBase.setUp(self)          TestMapBase.setUp(self)
128            self.session = Session("Test session for %s" % self.__class__)
129            open_shp = self.session.OpenShapefile
130          self.arc_layer = Layer("Roads",          self.arc_layer = Layer("Roads",
131                                 os.path.join("..", "Data", "iceland",                                 open_shp(os.path.join("..", "Data", "iceland",
132                                              "roads-line.shp"))                                                       "roads-line.shp")))
133          self.poly_layer = Layer("Political",          self.poly_layer = Layer("Political",
134                                  os.path.join("..", "Data", "iceland",                                  open_shp(os.path.join("..", "Data", "iceland",
135                                               "political.shp"))                                                        "political.shp")))
136          self.map.AddLayer(self.arc_layer)          self.map.AddLayer(self.arc_layer)
137          self.map.AddLayer(self.poly_layer)          self.map.AddLayer(self.poly_layer)
138          self.map.UnsetModified()          self.map.UnsetModified()
139          self.clear_messages()          self.clear_messages()
140    
141        def tearDown(self):
142            TestMapBase.tearDown(self)
143            self.session = None
144            self.map = None
145            self.poly_layer = self.arc_layer = None
146    
147      def test_remove_layer(self):      def test_remove_layer(self):
148          """Test Map.RemoveLayer"""          """Test Map.RemoveLayer"""
149          self.map.RemoveLayer(self.arc_layer)          self.map.RemoveLayer(self.arc_layer)
150          self.assert_(self.map.WasModified())          self.assert_(self.map.WasModified())
151          self.assertEquals(self.map.Layers(), [self.poly_layer])          self.assertEquals(self.map.Layers(), [self.poly_layer])
152          self.map.UnsetModified()          self.map.UnsetModified()
153          self.check_messages([(self.map, LAYERS_CHANGED),          self.check_messages([(self.map, MAP_LAYERS_CHANGED),
154                                 (self.map, MAP_LAYERS_REMOVED),
155                               (CHANGED,)])                               (CHANGED,)])
156    
157      def test_clear_layers(self):      def test_clear_layers(self):
# Line 133  class TestMapWithContents(TestMapBase, s Line 159  class TestMapWithContents(TestMapBase, s
159          self.map.ClearLayers()          self.map.ClearLayers()
160          self.assertEquals(self.map.Layers(), [])          self.assertEquals(self.map.Layers(), [])
161          self.assertEquals(self.map.LabelLayer().Labels(), [])          self.assertEquals(self.map.LabelLayer().Labels(), [])
162          self.check_messages([(LAYERS_CHANGED,),          self.check_messages([(MAP_LAYERS_CHANGED,),
163                               (self.map, LAYERS_CHANGED)])                               (self.map, MAP_LAYERS_CHANGED),
164                                 (self.map, MAP_LAYERS_REMOVED)])
165          self.assert_(self.map.WasModified())          self.assert_(self.map.WasModified())
166          self.failIf(self.map.HasLayers())          self.failIf(self.map.HasLayers())
167    
# Line 142  class TestMapWithContents(TestMapBase, s Line 169  class TestMapWithContents(TestMapBase, s
169          """Test Map.RaiseLayer"""          """Test Map.RaiseLayer"""
170          self.map.RaiseLayer(self.arc_layer)          self.map.RaiseLayer(self.arc_layer)
171          self.assertEquals(self.map.Layers(), [self.poly_layer, self.arc_layer])          self.assertEquals(self.map.Layers(), [self.poly_layer, self.arc_layer])
172          self.check_messages([(self.map, LAYERS_CHANGED)])          self.check_messages([(self.map, MAP_LAYERS_CHANGED),
173                                 (self.map, MAP_STACKING_CHANGED)])
174            self.assert_(self.map.WasModified())
175    
176        def test_raise_layer_top(self):
177            """Test Map.MoveLayerToTop"""
178            open_shp = self.session.OpenShapefile
179            dummy = Layer("Roads",
180                          open_shp(os.path.join("..", "Data", "iceland",
181                                                "roads-line.shp")))
182            self.map.AddLayer(dummy)
183            self.clear_messages()
184    
185            self.map.MoveLayerToTop(self.poly_layer)
186            self.assertEquals(self.map.Layers(),
187                              [self.arc_layer, dummy, self.poly_layer])
188            self.check_messages([(self.map, MAP_LAYERS_CHANGED),
189                                 (self.map, MAP_STACKING_CHANGED)])
190            self.assert_(self.map.WasModified())
191    
192            self.map.RemoveLayer(dummy)
193    
194        def test_lower_layer_bottom(self):
195            """Test Map.MoveLayerToBottom"""
196            open_shp = self.session.OpenShapefile
197            dummy = Layer("Roads",
198                          open_shp(os.path.join("..", "Data", "iceland",
199                                                "roads-line.shp")))
200            self.map.AddLayer(dummy)
201            self.clear_messages()
202    
203            self.map.MoveLayerToBottom(dummy)
204            self.assertEquals(self.map.Layers(),
205                              [dummy, self.arc_layer, self.poly_layer])
206            self.check_messages([(self.map, MAP_LAYERS_CHANGED),
207                                 (self.map, MAP_STACKING_CHANGED)])
208          self.assert_(self.map.WasModified())          self.assert_(self.map.WasModified())
209    
210            self.map.RemoveLayer(dummy)
211    
212      def test_raise_highest_layer(self):      def test_raise_highest_layer(self):
213          """Test Map.RaiseLayer with highest layer          """Test Map.RaiseLayer with highest layer
214    
# Line 160  class TestMapWithContents(TestMapBase, s Line 224  class TestMapWithContents(TestMapBase, s
224          """Test Map.LowerLayer"""          """Test Map.LowerLayer"""
225          self.map.LowerLayer(self.poly_layer)          self.map.LowerLayer(self.poly_layer)
226          self.assertEquals(self.map.Layers(), [self.poly_layer, self.arc_layer])          self.assertEquals(self.map.Layers(), [self.poly_layer, self.arc_layer])
227          self.check_messages([(self.map, LAYERS_CHANGED)])          self.check_messages([(self.map, MAP_LAYERS_CHANGED),
228                                 (self.map, MAP_STACKING_CHANGED)])
229          self.assert_(self.map.WasModified())          self.assert_(self.map.WasModified())
230    
231      def test_lower_lowest_layer(self):      def test_lower_lowest_layer(self):
# Line 193  class TestMapWithContents(TestMapBase, s Line 258  class TestMapWithContents(TestMapBase, s
258          """Test Map.SetProjection"""          """Test Map.SetProjection"""
259          proj = Projection(["zone=26", "proj=utm", "ellps=clrk66"])          proj = Projection(["zone=26", "proj=utm", "ellps=clrk66"])
260          self.map.SetProjection(proj)          self.map.SetProjection(proj)
261          self.check_messages([(self.map, MAP_PROJECTION_CHANGED)])          self.check_messages([(self.map, None, MAP_PROJECTION_CHANGED)])
262          self.assert_(self.map.WasModified())          self.assert_(self.map.WasModified())
263    
264      def test_tree_info(self):      def test_tree_info(self):
# Line 214  class TestMapWithContents(TestMapBase, s Line 279  class TestMapWithContents(TestMapBase, s
279                              ('Projection',                              ('Projection',
280                               ['zone=26', 'proj=utm', 'ellps=clrk66']),                               ['zone=26', 'proj=utm', 'ellps=clrk66']),
281                              self.poly_layer,                              self.poly_layer,
282                              self.arc_layer]))                              self.arc_layer,
283                                self.map.LabelLayer()]))
     def test_forwarding_fill(self):  
         """Test Map's forwarding of Layer.SetFill messages"""  
         self.poly_layer.SetFill(Color(0.0, 0.5, 1.0))  
         self.check_messages([(self.poly_layer, LAYER_LEGEND_CHANGED)])  
   
     def test_forwarding_stroke(self):  
         """Test Map's forwarding of Layer.SetStroke messages"""  
         self.poly_layer.SetStroke(Color(0.0, 0.5, 1.0))  
         self.check_messages([(self.poly_layer, LAYER_LEGEND_CHANGED)])  
   
     def test_forwarding_stroke_width(self):  
         """Test Map's forwarding of Layer.SetStrokeWidth messages"""  
         self.poly_layer.SetStrokeWidth(3)  
         self.check_messages([(self.poly_layer, LAYER_LEGEND_CHANGED)])  
284    
285      def test_forwarding_visibility(self):      def test_forwarding_visibility(self):
286          """Test Map's forwarding of Layer.SetVisible messages"""          """Test Map's forwarding of Layer.SetVisible messages"""
# Line 244  class TestMapWithContents(TestMapBase, s Line 295  class TestMapWithContents(TestMapBase, s
295          UnsetModified clears the changed flag in the layer as well.          UnsetModified clears the changed flag in the layer as well.
296          """          """
297          self.failIf(self.map.WasModified())          self.failIf(self.map.WasModified())
298          self.poly_layer.SetFill(Color(0.0, 0.5, 1.0))          self.poly_layer.GetClassification().SetDefaultFill(Color(0.0, 0.5, 1.0))
299          self.assert_(self.map.WasModified())          self.assert_(self.map.WasModified())
300          self.map.UnsetModified()          self.map.UnsetModified()
301          self.failIf(self.map.WasModified())          self.failIf(self.map.WasModified())
302          self.failIf(self.poly_layer.WasModified())          self.failIf(self.poly_layer.WasModified())
303          self.check_messages([(self.poly_layer, LAYER_LEGEND_CHANGED),          self.check_messages([(self.poly_layer, LAYER_CHANGED),
304                               (CHANGED,)                               (CHANGED,)])
                              ])  
305    
306  if __name__ == "__main__":  if __name__ == "__main__":
307      unittest.main()      support.run_tests()
308    

Legend:
Removed from v.343  
changed lines
  Added in v.2734

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26