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

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

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

revision 584 by jonathan, Tue Apr 1 10:22:35 2003 UTC revision 1016 by bh, Fri May 23 11:05:59 2003 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 27  from Thuban.Model.map import Map Line 27  from Thuban.Model.map import Map
27  from Thuban.Model.layer import Layer  from Thuban.Model.layer import Layer
28  from Thuban.Model.proj import Projection  from Thuban.Model.proj import Projection
29  from Thuban.Model.color import Color  from Thuban.Model.color import Color
30    from Thuban.Model.table import MemoryTable, FIELDTYPE_STRING, \
31                                   FIELDTYPE_INT, FIELDTYPE_DOUBLE
32    from Thuban.Model.data import DerivedShapeStore
33    
34    
35  class TestSessionSimple(unittest.TestCase):  class TestSessionSimple(unittest.TestCase):
36    
37      """Very simple test cases for Session"""      """Very simple test cases for Session"""
38    
39        def setUp(self):
40            """Initialize self.session to None"""
41            self.session = None
42    
43        def tearDown(self):
44            """Call self.session.Destroy() and reset self.session to None"""
45            self.session.Destroy()
46            self.session = None
47    
48      def test_initial_state(self):      def test_initial_state(self):
49          """Test Session's initial state"""          """Test Session's initial state"""
50          session = Session("Test Session")          session = self.session = Session("Test Session")
51          self.assertEquals(session.Title(), "Test Session")          self.assertEquals(session.Title(), "Test Session")
52          self.assertEquals(session.Maps(), [])          self.assertEquals(session.Maps(), [])
53            self.assertEquals(session.Tables(), [])
54            self.assertEquals(session.ShapeStores(), [])
55          self.assertEquals(session.filename, None)          self.assertEquals(session.filename, None)
56          self.failIf(session.HasMaps())          self.failIf(session.HasMaps())
57          self.failIf(session.WasModified())          self.failIf(session.WasModified())
58          session.Destroy()  
59        def test_add_table(self):
60            """Test Session.AddTable()"""
61            session = self.session = Session("Test Session")
62            memtable = MemoryTable([("type", FIELDTYPE_STRING),
63                                    ("value", FIELDTYPE_DOUBLE),
64                                    ("code", FIELDTYPE_INT)],
65                                   [("OTHER/UNKNOWN", -1.5, 11),
66                                    ("RUINS", 0.0, 1),
67                                    ("FARM", 3.141, 2),
68                                    ("BUILDING", 2.5, 3),
69                                    ("HUT", 1e6, 4),
70                                    ("LIGHTHOUSE", -0.01, 5)])
71            table = session.AddTable(memtable)
72            self.assertEquals(session.Tables(), [table])
73    
74        def test_remove_table(self):
75            """Test Session.RemoveTable()"""
76            session = self.session = Session("Test Session")
77            memtable = MemoryTable([("type", FIELDTYPE_STRING),
78                                    ("value", FIELDTYPE_DOUBLE),
79                                    ("code", FIELDTYPE_INT)],
80                                   [("OTHER/UNKNOWN", -1.5, 11),
81                                    ("RUINS", 0.0, 1),
82                                    ("FARM", 3.141, 2),
83                                    ("BUILDING", 2.5, 3),
84                                    ("HUT", 1e6, 4),
85                                    ("LIGHTHOUSE", -0.01, 5)])
86            table = session.AddTable(memtable)
87            self.assertEquals(session.Tables(), [table])
88            session.RemoveTable(table)
89            self.assertEquals(session.Tables(), [])
90            self.assertRaises(ValueError, session.RemoveTable, table)
91    
92        def test_open_shapefile(self):
93            """Test Session.OpenShapefile()"""
94            session = self.session = Session("Test Session")
95            filename = os.path.join("..", "Data", "iceland",
96                                    "roads-line.shp")
97            store = session.OpenShapefile(filename)
98            self.assertEquals(store.FileName(), os.path.abspath(filename))
99            # The filetype of a shapefile is "shapefile"
100            self.assertEquals(store.FileType(), "shapefile")
101            # The shapestore itself depends on nothing else
102            self.assertEquals(store.Dependencies(), ())
103            # The shapestore's table depends on the shapestore
104            self.assertEquals(store.Table().Dependencies(), (store,))
105    
106            self.assertEquals(session.Tables(), [store.Table()])
107    
108        def test_add_shapestore(self):
109            """Test Session.AddShapeStore()"""
110            session = self.session = Session("Test Session")
111            filename = os.path.join("..", "Data", "iceland",
112                                    "roads-line.shp")
113            try:
114                store = session.OpenShapefile(filename)
115                derived = DerivedShapeStore(store, store.Table())
116                session.AddShapeStore(derived)
117                self.assertEquals(session.ShapeStores(), [store, derived])
118            finally:
119                store = derived = None
120    
121    
122  class TestSessionBase(unittest.TestCase, support.SubscriberMixin):  class TestSessionBase(unittest.TestCase, support.SubscriberMixin):
# Line 71  class TestSessionBase(unittest.TestCase, Line 146  class TestSessionBase(unittest.TestCase,
146      def tearDown(self):      def tearDown(self):
147          """Destroy self.session and clear the message list"""          """Destroy self.session and clear the message list"""
148          self.session.Destroy()          self.session.Destroy()
149            self.session = None
150          self.clear_messages()          self.clear_messages()
151    
152    
# Line 105  class TestSessionWithContent(TestSession Line 181  class TestSessionWithContent(TestSession
181          """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
182          """          """
183          TestSessionBase.setUp(self)          TestSessionBase.setUp(self)
184            open_shp = self.session.OpenShapefile
185          self.arc_layer = Layer("Roads",          self.arc_layer = Layer("Roads",
186                                 os.path.join("..", "Data", "iceland",                                 open_shp(os.path.join("..", "Data", "iceland",
187                                              "roads-line.shp"))                                                       "roads-line.shp")))
188          self.poly_layer = Layer("Political",          self.poly_layer = Layer("Political",
189                                  os.path.join("..", "Data", "iceland",                                  open_shp(os.path.join("..", "Data", "iceland",
190                                               "political.shp"))                                                        "political.shp")))
191          self.map = Map("A Map")          self.map = Map("A Map")
192          self.map.AddLayer(self.arc_layer)          self.map.AddLayer(self.arc_layer)
193          self.map.AddLayer(self.poly_layer)          self.map.AddLayer(self.poly_layer)
# Line 118  class TestSessionWithContent(TestSession Line 195  class TestSessionWithContent(TestSession
195          self.session.UnsetModified()          self.session.UnsetModified()
196          self.clear_messages()          self.clear_messages()
197    
198        def tearDown(self):
199            TestSessionBase.tearDown(self)
200            self.arc_layer = self.poly_layer = None
201    
202      def test_remove_map(self):      def test_remove_map(self):
203          """Test Session.RemoveMap"""          """Test Session.RemoveMap"""
204          self.session.RemoveMap(self.map)          self.session.RemoveMap(self.map)
# Line 201  class TestSessionWithContent(TestSession Line 282  class TestSessionWithContent(TestSession
282                               (self.session, CHANGED),                               (self.session, CHANGED),
283                               (CHANGED,)])                               (CHANGED,)])
284    
285        def test_shape_stores(self):
286            """Test Session.ShapeStores()"""
287            # Strictly speaking the session doesn't make guarantees about
288            # the order of the ShapeStores in the list, but currently it's
289            # deterministic and they're listed in the order in which they
290            # were created
291            self.assertEquals(self.session.ShapeStores(),
292                              [self.arc_layer.ShapeStore(),
293                               self.poly_layer.ShapeStore()])
294            # If we remove the map from the session and clear our instance
295            # variables that hold the layers and the map the list should
296            # become empty again.
297            self.session.RemoveMap(self.map)
298            self.arc_layer = self.poly_layer = self.map = None
299            self.assertEquals(self.session.ShapeStores(), [])
300    
301        def test_tables(self):
302            """Test Session.Tables()"""
303            # Strictly speaking the session doesn't make guarantees about
304            # the order of the tables in the list, but currently it's
305            # deterministic and they're listed in the order in which they
306            # were opened
307            self.assertEquals(self.session.Tables(),
308                              [self.arc_layer.ShapeStore().Table(),
309                               self.poly_layer.ShapeStore().Table()])
310            # If we remove the map from the session and clear our instance
311            # variables that hold the layers and the map the list should
312            # become empty again.
313            self.session.RemoveMap(self.map)
314            self.arc_layer = self.poly_layer = self.map = None
315            self.assertEquals(self.session.Tables(), [])
316    
317    
318  if __name__ == "__main__":  if __name__ == "__main__":
319      unittest.main()      unittest.main()

Legend:
Removed from v.584  
changed lines
  Added in v.1016

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26