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

Annotation of /branches/WIP-pyshapelib-bramz/test/test_menu.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2734 - (hide annotations)
Thu Mar 1 12:42:59 2007 UTC (18 years ago) by bramz
File MIME type: text/x-python
File size: 4785 byte(s)
made a copy
1 bh 292 # Copyright (c) 2002 by Intevation GmbH
2     # Authors:
3     # Bernhard Herzog <[email protected]>
4     #
5     # This program is free software under the GPL (>=v2)
6     # Read the file COPYING coming with Thuban for details.
7    
8     """
9     Test the Menu
10     """
11    
12     __version__ = "$Revision$"
13     # $Source$
14     # $Id$
15    
16     import unittest
17    
18     import support
19 bh 325 support.initthuban()
20 bh 292
21     from Thuban.UI.menu import Menu
22    
23    
24     class MenuTest(unittest.TestCase):
25    
26     def compare_menus(self, menu1, menu2):
27     eq = self.assertEquals
28     ass = self.assert_
29     ass(isinstance(menu1, Menu))
30     ass(isinstance(menu2, Menu))
31     eq(menu1.name, menu2.name)
32     self.compare_items(menu1.items, menu2.items)
33    
34     def compare_items(self, items1, items2):
35     eq = self.assertEquals
36     eq(len(items1), len(items2), "Item lists have different lengths")
37     for i in range(len(items1)):
38     i1 = items1[i]
39     i2 = items2[i]
40     if isinstance(i1, Menu):
41     self.compare_menus(i1, i2)
42     else:
43     eq(i1, i2)
44    
45     def test(self):
46     """Menu operations (adding new items and submenus)"""
47     eq = self.assertEquals
48    
49     # Build a typical main menu for an application. Here we have
50     # only the file menu as sub-menu at first.
51     # Make sure we copy the file_items list so that it won't be
52     # modified
53     file_items = ["new", None, "open", "save"]
54     menu = Menu("<main>", "<main>",
55     [Menu("file", "File", file_items[:])])
56    
57     # fetch the file submenu
58     filemenu = menu.find_menu("file")
59     # check whether it's the right one
60     self.compare_menus(filemenu, Menu("file", "File", file_items[:]))
61    
62     # append a separator and an item to the file menu
63     filemenu.InsertSeparator()
64     filemenu.InsertItem("exit")
65     file_items.extend([None, "exit"])
66     self.compare_menus(filemenu, Menu("file", "File", file_items[:]))
67    
68     # append an item to the file menu
69     filemenu.InsertItem("save_as", after="save")
70     file_items.insert(4, "save_as")
71     self.compare_menus(filemenu, Menu("file", "File", file_items[:]))
72    
73     # add a new sub-menu to the main menu
74     help_items = ["about", "manual"]
75     helpmenu = menu.InsertMenu("help", "Help")
76     helpmenu.SetItems(help_items[:])
77    
78     self.compare_menus(menu, Menu("<main>", "<main>",
79     [Menu("file", "File", file_items[:]),
80     Menu("help", "Help", help_items[:])]))
81    
82     self.compare_menus(helpmenu, Menu("help", "Help", help_items[:]))
83    
84     # add new sub-menu after the file menu but before the help menu
85 jan 1060 edit_items = ["cut", "copy", "paste"]
86 bh 292 editmenu = menu.InsertMenu("edit", "Edit", after="file")
87     editmenu.SetItems(edit_items[:])
88    
89     self.compare_menus(editmenu, Menu("edit", "Edit", edit_items[:]))
90     self.compare_menus(menu, Menu("<main>", "<main>",
91     [Menu("file", "File", file_items[:]),
92     Menu("edit", "Edit", edit_items[:]),
93     Menu("help", "Help", help_items[:])]))
94    
95 jan 1060 # remove an item from the menu
96     self.compare_menus(editmenu, Menu("edit", "Edit", edit_items[:]))
97     editmenu.RemoveItem("copy")
98     self.compare_menus(editmenu, Menu("edit", "Edit", ['cut', 'paste']))
99 jan 2205 editmenu.InsertItem("copy", after="cut") # for convenience for
100     # the following tests
101 bh 292
102 jan 2205 # find-or-insert a menu
103     self.compare_menus(menu, Menu("<main>", "<main>",
104     [Menu("file", "File", file_items[:]),
105     Menu("edit", "Edit", edit_items[:]),
106     Menu("help", "Help", help_items[:])]))
107     menu.FindOrInsertMenu("extensions", "Extensions")
108     self.compare_menus(menu, Menu("<main>", "<main>",
109     [Menu("file", "File", file_items[:]),
110     Menu("edit", "Edit", edit_items[:]),
111     Menu("help", "Help", help_items[:]),
112     Menu("extensions", "Extensions", [])]))
113     menu.FindOrInsertMenu("extensions", "Extensions")
114     self.compare_menus(menu, Menu("<main>", "<main>",
115     [Menu("file", "File", file_items[:]),
116     Menu("edit", "Edit", edit_items[:]),
117     Menu("help", "Help", help_items[:]),
118     Menu("extensions", "Extensions", [])]))
119 jan 1060
120 jan 2205
121 bh 292 if __name__ == "__main__":
122     unittest.main()

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26