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

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

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

revision 1088 by bh, Wed May 28 12:42:23 2003 UTC revision 1174 by jonathan, Thu Jun 12 13:37:29 2003 UTC
# Line 26  from Thuban.Model.session import Session Line 26  from Thuban.Model.session import Session
26  from Thuban.Model.layer import BaseLayer, Layer, RasterLayer, \  from Thuban.Model.layer import BaseLayer, Layer, RasterLayer, \
27       SHAPETYPE_POLYGON, SHAPETYPE_ARC, SHAPETYPE_POINT       SHAPETYPE_POLYGON, SHAPETYPE_ARC, SHAPETYPE_POINT
28  from Thuban.Model.messages import LAYER_LEGEND_CHANGED, \  from Thuban.Model.messages import LAYER_LEGEND_CHANGED, \
29       LAYER_VISIBILITY_CHANGED       LAYER_VISIBILITY_CHANGED, LAYER_SHAPESTORE_REPLACED, LAYER_CHANGED
30  from Thuban.Model.color import Color  from Thuban.Model.color import Color
31  from Thuban.Model.table import FIELDTYPE_DOUBLE, FIELDTYPE_STRING, MemoryTable  from Thuban.Model.table import FIELDTYPE_DOUBLE, FIELDTYPE_STRING, MemoryTable
32  from Thuban.Model.proj import Projection  from Thuban.Model.proj import Projection
33  from Thuban.Model.data import DerivedShapeStore  from Thuban.Model.data import DerivedShapeStore
34  from Thuban.Model.classification import Classification, ClassGroupSingleton  from Thuban.Model.classification import Classification, ClassGroupSingleton
35    
36    import Thuban.Model.resource
37    
38  class TestLayer(unittest.TestCase, support.FileTestMixin,  class TestLayer(unittest.TestCase, support.FileTestMixin,
39                  support.FloatComparisonMixin):                  support.FloatComparisonMixin):
40    
# Line 182  class TestLayer(unittest.TestCase, suppo Line 184  class TestLayer(unittest.TestCase, suppo
184          self.assertEquals(layer.GetFieldType("non existing"), None)          self.assertEquals(layer.GetFieldType("non existing"), None)
185    
186      def test_raster_layer(self):      def test_raster_layer(self):
187            if not Thuban.Model.resource.has_gdal_support():
188                return
189    
190          filename = self.build_path("island.tif")          filename = self.build_path("island.tif")
191          layer = RasterLayer("Test RasterLayer", filename)          layer = RasterLayer("Test RasterLayer", filename)
192          self.assertEquals(layer.GetImageFilename(), filename)          self.assertEquals(layer.GetImageFilename(), filename)
# Line 205  class TestLayer(unittest.TestCase, suppo Line 210  class TestLayer(unittest.TestCase, suppo
210              store = derived = None              store = derived = None
211    
212    
213  class SetShapeStoreTests(unittest.TestCase):  class SetShapeStoreTests(unittest.TestCase, support.SubscriberMixin):
214    
215      def setUp(self):      def setUp(self):
216          """Create a layer with a classification as self.layer"""          """Create a layer with a classification as self.layer"""
217            self.clear_messages()
218          self.session = Session("Test session for %s" % self.__class__)          self.session = Session("Test session for %s" % self.__class__)
219          self.shapefilename = os.path.join("..", "Data", "iceland",          self.shapefilename = os.path.join("..", "Data", "iceland",
220                                            "cultural_landmark-point.dbf")                                            "cultural_landmark-point.dbf")
# Line 217  class SetShapeStoreTests(unittest.TestCa Line 223  class SetShapeStoreTests(unittest.TestCa
223          self.classification = Classification(field = "CLPTLABEL")          self.classification = Classification(field = "CLPTLABEL")
224          self.classification.AppendGroup(ClassGroupSingleton("FARM"))          self.classification.AppendGroup(ClassGroupSingleton("FARM"))
225          self.layer.SetClassification(self.classification)          self.layer.SetClassification(self.classification)
226            self.layer.UnsetModified()
227            self.layer.Subscribe(LAYER_SHAPESTORE_REPLACED,
228                                 self.subscribe_with_params,
229                                 LAYER_SHAPESTORE_REPLACED)
230            self.layer.Subscribe(LAYER_CHANGED,
231                                 self.subscribe_with_params, LAYER_CHANGED)
232    
233      def tearDown(self):      def tearDown(self):
234            self.clear_messages()
235          self.layer.Destroy()          self.layer.Destroy()
236          self.session.Destroy()          self.session.Destroy()
237          self.session = self.layer = self.store = self.classification = None          self.session = self.layer = self.store = self.classification = None
238    
239      def test_sanity(self):      def test_sanity(self):
240          """SetShapeStoreTests sanity check"""          """SetShapeStoreTests sanity check
241    
242            Test the initial state of the test case instances after setUp.
243            """
244          cls = self.layer.GetClassification()          cls = self.layer.GetClassification()
245          self.assert_(cls is self.classification)          self.assert_(cls is self.classification)
246          self.assertEquals(cls.GetField(), "CLPTLABEL")          self.assertEquals(cls.GetField(), "CLPTLABEL")
247          self.assertEquals(cls.GetFieldType(), FIELDTYPE_STRING)          self.assertEquals(cls.GetFieldType(), FIELDTYPE_STRING)
248          self.assertEquals(self.layer.GetClassification().GetNumGroups(), 1)          self.assertEquals(self.layer.GetClassification().GetNumGroups(), 1)
249            self.failIf(self.layer.WasModified())
250    
251        def test_set_shape_store_modified_flag(self):
252            """Test whether Layer.SetShapeStore() sets the modified flag"""
253            memtable = MemoryTable([("FOO", FIELDTYPE_STRING)],
254                          [("bla",)] * self.layer.ShapeStore().Table().NumRows())
255            self.layer.SetShapeStore(DerivedShapeStore(self.store, memtable))
256    
257            self.assert_(self.layer.WasModified())
258    
259      def test_set_shape_store_different_field_name(self):      def test_set_shape_store_different_field_name(self):
260          """Test Layer.SetShapeStore() with different column name"""          """Test Layer.SetShapeStore() with different column name"""
# Line 238  class SetShapeStoreTests(unittest.TestCa Line 263  class SetShapeStoreTests(unittest.TestCa
263          self.layer.SetShapeStore(DerivedShapeStore(self.store, memtable))          self.layer.SetShapeStore(DerivedShapeStore(self.store, memtable))
264          # The classification should contain only the default group now.          # The classification should contain only the default group now.
265          self.assertEquals(self.layer.GetClassification().GetNumGroups(), 0)          self.assertEquals(self.layer.GetClassification().GetNumGroups(), 0)
266            self.check_messages([(self.layer, LAYER_CHANGED),
267                                 (self.layer, LAYER_SHAPESTORE_REPLACED)])
268    
269      def test_set_shape_store_same_field(self):      def test_set_shape_store_same_field(self):
270          """Test Layer.SetShapeStore() with same column name and type"""          """Test Layer.SetShapeStore() with same column name and type"""
# Line 246  class SetShapeStoreTests(unittest.TestCa Line 273  class SetShapeStoreTests(unittest.TestCa
273          self.layer.SetShapeStore(DerivedShapeStore(self.store, memtable))          self.layer.SetShapeStore(DerivedShapeStore(self.store, memtable))
274          # The classification should be the same as before          # The classification should be the same as before
275          self.assert_(self.layer.GetClassification() is self.classification)          self.assert_(self.layer.GetClassification() is self.classification)
276            self.check_messages([(self.layer, LAYER_SHAPESTORE_REPLACED)])
277    
278      def test_set_shape_store_same_field_different_type(self):      def test_set_shape_store_same_field_different_type(self):
279          """Test Layer.SetShapeStore() with same column name but different type          """Test Layer.SetShapeStore() with same column name but different type
# Line 255  class SetShapeStoreTests(unittest.TestCa Line 283  class SetShapeStoreTests(unittest.TestCa
283          self.layer.SetShapeStore(DerivedShapeStore(self.store, memtable))          self.layer.SetShapeStore(DerivedShapeStore(self.store, memtable))
284          # The classification should contain only the default group now.          # The classification should contain only the default group now.
285          self.assertEquals(self.layer.GetClassification().GetNumGroups(), 0)          self.assertEquals(self.layer.GetClassification().GetNumGroups(), 0)
286            self.check_messages([(self.layer, LAYER_CHANGED),
287                                 (self.layer, LAYER_SHAPESTORE_REPLACED)])
288    
289    
290  class TestLayerLegend(unittest.TestCase, support.SubscriberMixin):  class TestLayerLegend(unittest.TestCase, support.SubscriberMixin):

Legend:
Removed from v.1088  
changed lines
  Added in v.1174

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26