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 |
# |
# |
20 |
support.initthuban() |
support.initthuban() |
21 |
|
|
22 |
from Thuban.Model.messages import CHANGED, MAPS_CHANGED, FILENAME_CHANGED, \ |
from Thuban.Model.messages import CHANGED, MAPS_CHANGED, FILENAME_CHANGED, \ |
23 |
MAP_PROJECTION_CHANGED, LAYERS_CHANGED, \ |
MAP_PROJECTION_CHANGED, MAP_LAYERS_CHANGED, \ |
24 |
LAYER_VISIBILITY_CHANGED, LAYER_LEGEND_CHANGED |
LAYER_VISIBILITY_CHANGED, LAYER_CHANGED |
25 |
from Thuban.Model.session import Session |
from Thuban.Model.session import Session |
26 |
from Thuban.Model.map import Map |
from Thuban.Model.map import Map |
27 |
from Thuban.Model.layer import Layer |
from Thuban.Model.layer import Layer |
58 |
|
|
59 |
# Create a Session and subscribe to all interesting channels. |
# Create a Session and subscribe to all interesting channels. |
60 |
self.session = Session("Test Session") |
self.session = Session("Test Session") |
61 |
for channel in (CHANGED, MAPS_CHANGED, FILENAME_CHANGED, |
for channel in (CHANGED, |
62 |
MAP_PROJECTION_CHANGED, LAYERS_CHANGED, |
MAPS_CHANGED, |
63 |
LAYER_VISIBILITY_CHANGED, LAYER_LEGEND_CHANGED): |
FILENAME_CHANGED, |
64 |
|
MAP_PROJECTION_CHANGED, |
65 |
|
MAP_LAYERS_CHANGED, |
66 |
|
LAYER_VISIBILITY_CHANGED, |
67 |
|
LAYER_CHANGED): |
68 |
self.session.Subscribe(channel, |
self.session.Subscribe(channel, |
69 |
self.subscribe_with_params, channel) |
self.subscribe_with_params, channel) |
70 |
|
|
71 |
def tearDown(self): |
def tearDown(self): |
72 |
"""Destroy self.session and clear the message list""" |
"""Destroy self.session and clear the message list""" |
73 |
self.session.Destroy() |
self.session.Destroy() |
74 |
|
self.session = None |
75 |
self.clear_messages() |
self.clear_messages() |
76 |
|
|
77 |
|
|
106 |
"""Extend the inherited method to add a non-empty map to self.session |
"""Extend the inherited method to add a non-empty map to self.session |
107 |
""" |
""" |
108 |
TestSessionBase.setUp(self) |
TestSessionBase.setUp(self) |
109 |
|
open_shp = self.session.OpenShapefile |
110 |
self.arc_layer = Layer("Roads", |
self.arc_layer = Layer("Roads", |
111 |
os.path.join("..", "Data", "iceland", |
open_shp(os.path.join("..", "Data", "iceland", |
112 |
"roads-line.shp")) |
"roads-line.shp"))) |
113 |
self.poly_layer = Layer("Political", |
self.poly_layer = Layer("Political", |
114 |
os.path.join("..", "Data", "iceland", |
open_shp(os.path.join("..", "Data", "iceland", |
115 |
"political.shp")) |
"political.shp"))) |
116 |
self.map = Map("A Map") |
self.map = Map("A Map") |
117 |
self.map.AddLayer(self.arc_layer) |
self.map.AddLayer(self.arc_layer) |
118 |
self.map.AddLayer(self.poly_layer) |
self.map.AddLayer(self.poly_layer) |
120 |
self.session.UnsetModified() |
self.session.UnsetModified() |
121 |
self.clear_messages() |
self.clear_messages() |
122 |
|
|
123 |
|
def tearDown(self): |
124 |
|
TestSessionBase.tearDown(self) |
125 |
|
self.arc_layer = self.poly_layer = None |
126 |
|
|
127 |
def test_remove_map(self): |
def test_remove_map(self): |
128 |
"""Test Session.RemoveMap""" |
"""Test Session.RemoveMap""" |
129 |
self.session.RemoveMap(self.map) |
self.session.RemoveMap(self.map) |
160 |
"""Test Session's forwarding of Layer.SetFill messages""" |
"""Test Session's forwarding of Layer.SetFill messages""" |
161 |
self.poly_layer.GetClassification().SetDefaultFill(Color(0.0, 0.5, 1.0)) |
self.poly_layer.GetClassification().SetDefaultFill(Color(0.0, 0.5, 1.0)) |
162 |
self.assert_(self.session.WasModified()) |
self.assert_(self.session.WasModified()) |
163 |
self.check_messages([(self.poly_layer, LAYER_LEGEND_CHANGED), |
self.check_messages([(self.poly_layer, LAYER_CHANGED), |
164 |
(self.session, CHANGED)]) |
(self.session, CHANGED)]) |
165 |
|
|
166 |
def test_forwarding_stroke(self): |
def test_forwarding_stroke(self): |
167 |
"""Test Session's forwarding of Layer.SetStroke messages""" |
"""Test Session's forwarding of Layer.SetStroke messages""" |
168 |
self.poly_layer.GetClassification().\ |
self.poly_layer.GetClassification().\ |
169 |
SetDefaultStroke(Color(0.0, 0.5, 1.0)) |
SetDefaultLineColor(Color(0.0, 0.5, 1.0)) |
170 |
self.assert_(self.session.WasModified()) |
self.assert_(self.session.WasModified()) |
171 |
self.check_messages([(self.poly_layer, LAYER_LEGEND_CHANGED), |
self.check_messages([(self.poly_layer, LAYER_CHANGED), |
172 |
(self.session, CHANGED)]) |
(self.session, CHANGED)]) |
173 |
|
|
174 |
def test_forwarding_stroke_width(self): |
def test_forwarding_stroke_width(self): |
175 |
"""Test Session's forwarding of Layer.SetStrokeWidth messages""" |
"""Test Session's forwarding of Layer.SetStrokeWidth messages""" |
176 |
self.poly_layer.GetClassification().SetDefaultStrokeWidth(3) |
self.poly_layer.GetClassification().SetDefaultLineWidth(3) |
177 |
self.assert_(self.session.WasModified()) |
self.assert_(self.session.WasModified()) |
178 |
self.check_messages([(self.poly_layer, LAYER_LEGEND_CHANGED), |
self.check_messages([(self.poly_layer, LAYER_CHANGED), |
179 |
(self.session, CHANGED)]) |
(self.session, CHANGED)]) |
180 |
|
|
181 |
def test_forwarding_visibility(self): |
def test_forwarding_visibility(self): |
199 |
def test_unset_modified_layer(self): |
def test_unset_modified_layer(self): |
200 |
"""Test Session.UnsetModified with layer level changes""" |
"""Test Session.UnsetModified with layer level changes""" |
201 |
self.failIf(self.session.WasModified()) |
self.failIf(self.session.WasModified()) |
202 |
self.poly_layer.GetClassification().SetDefaultStrokeWidth(3) |
self.poly_layer.GetClassification().SetDefaultLineWidth(3) |
203 |
self.assert_(self.session.WasModified()) |
self.assert_(self.session.WasModified()) |
204 |
self.session.UnsetModified() |
self.session.UnsetModified() |
205 |
self.failIf(self.session.WasModified()) |
self.failIf(self.session.WasModified()) |
206 |
self.check_messages([(self.poly_layer, LAYER_LEGEND_CHANGED), |
self.check_messages([(self.poly_layer, LAYER_CHANGED), |
207 |
(self.session, CHANGED), |
(self.session, CHANGED), |
208 |
(CHANGED,)]) |
(CHANGED,)]) |
209 |
|
|