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

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

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

revision 1585 by bh, Fri Aug 15 10:26:40 2003 UTC revision 1928 by bh, Mon Nov 10 16:57:43 2003 UTC
# Line 22  support.initthuban() Line 22  support.initthuban()
22  from Thuban.Model.color import Transparent, Color  from Thuban.Model.color import Transparent, Color
23  from Thuban.Model.data import SHAPETYPE_ARC, SHAPETYPE_POLYGON, SHAPETYPE_POINT  from Thuban.Model.data import SHAPETYPE_ARC, SHAPETYPE_POLYGON, SHAPETYPE_POINT
24  from Thuban.Model.map import Map  from Thuban.Model.map import Map
25  from Thuban.Model.layer import Layer, RasterLayer  from Thuban.Model.layer import BaseLayer, Layer, RasterLayer
26  from Thuban.Model.table import MemoryTable, \  from Thuban.Model.table import MemoryTable, \
27       FIELDTYPE_DOUBLE, FIELDTYPE_INT, FIELDTYPE_STRING       FIELDTYPE_DOUBLE, FIELDTYPE_INT, FIELDTYPE_STRING
28  from Thuban.Model.classification import ClassGroupSingleton  from Thuban.Model.classification import ClassGroupSingleton
29  import Thuban.Model.resource  import Thuban.Model.resource
30    
31    
32  from Thuban.UI.baserenderer import BaseRenderer  from Thuban.UI.baserenderer import BaseRenderer, \
33         add_renderer_extension, init_renderer_extensions
34    
35    
36  class MockDC:  class MockDC:
# Line 88  class SimpleRenderer(BaseRenderer): Line 89  class SimpleRenderer(BaseRenderer):
89      def label_font(self):      def label_font(self):
90          return "label font"          return "label font"
91    
92      def draw_raster_data(self, data):      def draw_raster_data(self, data, format='BMP'):
93          self.raster_data = data          self.raster_data = data
94            self.raster_format = format
95    
96    
97  class MockProjection:  class MockProjection:
# Line 137  class TestBaseRenderer(unittest.TestCase Line 139  class TestBaseRenderer(unittest.TestCase
139          map.AddLayer(layer)          map.AddLayer(layer)
140    
141          dc = MockDC()          dc = MockDC()
142          renderer = SimpleRenderer(dc, 2, (10, 10))          renderer = SimpleRenderer(dc, map, 2, (10, 10))
143    
144          renderer.render_map(map)          renderer.render_map()
145    
146          self.assertEquals(dc.calls,          self.assertEquals(dc.calls,
147                            [('BeginDrawing',),                            [('BeginDrawing',),
# Line 167  class TestBaseRenderer(unittest.TestCase Line 169  class TestBaseRenderer(unittest.TestCase
169          self.to_destroy.append(map)          self.to_destroy.append(map)
170    
171          dc = MockDC()          dc = MockDC()
172          renderer = SimpleRenderer(dc, 2, (10, 10))          renderer = SimpleRenderer(dc, map, 2, (10, 10))
173    
174          renderer.render_map(map)          renderer.render_map()
175    
176          self.assertEquals(dc.calls,          self.assertEquals(dc.calls,
177                            [('BeginDrawing',),                            [('BeginDrawing',),
# Line 206  class TestBaseRenderer(unittest.TestCase Line 208  class TestBaseRenderer(unittest.TestCase
208          self.to_destroy.append(map)          self.to_destroy.append(map)
209    
210          dc = MockDC()          dc = MockDC()
211          renderer = SimpleRenderer(dc, 2, (10, 10))          renderer = SimpleRenderer(dc, map, 2, (10, 10))
212    
213          renderer.render_map(map)          renderer.render_map()
214    
215          self.assertEquals(dc.calls,          self.assertEquals(dc.calls,
216                            [('BeginDrawing',),                            [('BeginDrawing',),
# Line 245  class TestBaseRenderer(unittest.TestCase Line 247  class TestBaseRenderer(unittest.TestCase
247          self.to_destroy.append(map)          self.to_destroy.append(map)
248    
249          dc = MockDC()          dc = MockDC()
250          renderer = SimpleRenderer(dc, 2, (10, 10))          renderer = SimpleRenderer(dc, map, 2, (10, 10))
251    
252          renderer.render_map(map)          renderer.render_map()
253    
254          self.assertEquals(dc.calls,          self.assertEquals(dc.calls,
255                            [('BeginDrawing',),                            [('BeginDrawing',),
# Line 279  class TestBaseRenderer(unittest.TestCase Line 281  class TestBaseRenderer(unittest.TestCase
281          self.to_destroy.append(map)          self.to_destroy.append(map)
282    
283          dc = MockDC(size = (20, 20))          dc = MockDC(size = (20, 20))
284          renderer = SimpleRenderer(dc, 34, (800, 2250))          renderer = SimpleRenderer(dc, map, 34, (800, 2250))
285    
286          renderer.render_map(map)          renderer.render_map()
287    
288          # The following commented out code block can be used to generate          # The following commented out code block can be used to generate
289          # the base64 coded reference image data          # the base64 coded reference image data
# Line 324  class TestBaseRenderer(unittest.TestCase Line 326  class TestBaseRenderer(unittest.TestCase
326              'yItGQwJCQo9RxozIgkyCQoPFxAtDBkgIgkJCQkJCQkJMRoQECJQNi9EIAAgCQkJCQ'              'yItGQwJCQo9RxozIgkyCQoPFxAtDBkgIgkJCQkJCQkJMRoQECJQNi9EIAAgCQkJCQ'
327              'kSUA88UAYeBjELICA8HiI=\n')              'kSUA88UAYeBjELICA8HiI=\n')
328          self.assertEquals(renderer.raster_data, raw_data)          self.assertEquals(renderer.raster_data, raw_data)
329            self.assertEquals(renderer.raster_format, "BMP")
330    
331          self.assertEquals(dc.calls,          self.assertEquals(dc.calls,
332                            [('BeginDrawing',),                            [('BeginDrawing',),
# Line 346  class TestBaseRenderer(unittest.TestCase Line 349  class TestBaseRenderer(unittest.TestCase
349          self.to_destroy.append(map)          self.to_destroy.append(map)
350    
351          dc = MockDC()          dc = MockDC()
352          renderer = SimpleRenderer(dc, 2, (10, 10))          renderer = SimpleRenderer(dc, map, 2, (10, 10))
353    
354          renderer.render_map(map)          renderer.render_map()
355    
356          self.assertEquals(dc.calls,          self.assertEquals(dc.calls,
357                            [('BeginDrawing',),                            [('BeginDrawing',),
# Line 374  class TestBaseRenderer(unittest.TestCase Line 377  class TestBaseRenderer(unittest.TestCase
377          self.to_destroy.append(map)          self.to_destroy.append(map)
378    
379          dc = MockDC()          dc = MockDC()
380          renderer = SimpleRenderer(dc, 2, (10, 10))          renderer = SimpleRenderer(dc, map, 2, (10, 10))
381    
382          renderer.render_map(map)          renderer.render_map()
383    
384          self.assertEquals(dc.calls,          self.assertEquals(dc.calls,
385                            [('BeginDrawing',),                            [('BeginDrawing',),
# Line 403  class TestBaseRenderer(unittest.TestCase Line 406  class TestBaseRenderer(unittest.TestCase
406          self.to_destroy.append(map)          self.to_destroy.append(map)
407    
408          dc = MockDC()          dc = MockDC()
409          renderer = SimpleRenderer(dc, 2, (10, 10))          renderer = SimpleRenderer(dc, map, 2, (10, 10))
410    
411          renderer.render_map(map)          renderer.render_map()
412    
413          self.assertEquals(dc.calls,          self.assertEquals(dc.calls,
414                            [('BeginDrawing',),                            [('BeginDrawing',),
# Line 416  class TestBaseRenderer(unittest.TestCase Line 419  class TestBaseRenderer(unittest.TestCase
419                             ('EndDrawing',)])                             ('EndDrawing',)])
420    
421    
422        def test_point_with_classification(self):
423            """Test BaseRenderer with point layer and classification"""
424            table = MemoryTable([("type", FIELDTYPE_STRING),
425                                 ("value", FIELDTYPE_DOUBLE),
426                                 ("code", FIELDTYPE_INT)],
427                                [("UNKNOWN", 0.0, 0),
428                                 ("UNKNOWN", 0.0, 1)])
429            shapes = [[[(0, 0)]], [[(10, 10)]]]
430            store = SimpleShapeStore(SHAPETYPE_POINT, shapes, table)
431    
432            map = Map("TestBaseRenderer")
433            layer = Layer("point layer", store)
434            group = ClassGroupSingleton(1)
435            group.GetProperties().SetFill(Color(0, 0, 1))
436            layer.GetClassification().AppendGroup(group)
437            layer.SetClassificationColumn("code")
438    
439            map.AddLayer(layer)
440            self.to_destroy.append(map)
441    
442            dc = MockDC()
443            renderer = SimpleRenderer(dc, map, 2, (10, 10))
444    
445            renderer.render_map()
446    
447            self.assertEquals(dc.calls,
448                              [('BeginDrawing',),
449                               ('SetBrush', ('brush', Transparent)),
450                               ('SetPen', ('pen', Color(0, 0, 0), 1)),
451                               ('DrawEllipse', 5, 5, 10, 10),
452                               ('SetBrush', ('brush', Color(0, 0, 1))),
453                               ('SetPen', ('pen', Color(0, 0, 0), 1)),
454                               ('DrawEllipse', 25, -15, 10, 10),
455                               ('SetFont', "label font"),
456                               ('EndDrawing',)])
457    
458    
459        def test_renderer_extension(self):
460            """Test renderer with a renderer extension"""
461            class MyLayer(BaseLayer):
462                pass
463    
464            calls = []
465            def my_renderer(renderer, layer):
466                calls.append((renderer, layer))
467                return ()
468    
469            add_renderer_extension(MyLayer, my_renderer)
470    
471            try:
472                map = Map("test_renderer_extension")
473                layer = MyLayer("my layer")
474                map.AddLayer(layer)
475                self.to_destroy.append(map)
476    
477                dc = MockDC()
478                renderer = SimpleRenderer(dc, map, 2, (10, 10))
479                renderer.render_map()
480            finally:
481                init_renderer_extensions()
482    
483            self.assertEquals(calls, [(renderer, layer)])
484    
485    
486  if __name__ == "__main__":  if __name__ == "__main__":
487      support.run_tests()      support.run_tests()

Legend:
Removed from v.1585  
changed lines
  Added in v.1928

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26