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: |
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: |
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',), |
456 |
('EndDrawing',)]) |
('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() |