[IMP] Make wizard work
[odoo/odoo.git] / openerp / tests / test_view_validation.py
1 # This test can be run stand-alone with something like:
2 # > PYTHONPATH=. python2 openerp/tests/test_view_validation.py
3 from lxml import etree
4 from StringIO import StringIO
5 import unittest2
6
7 from openerp.tools.view_validation import *
8
9 invalid_form = etree.parse(StringIO('''\
10 <form>
11     <label></label>
12     <group>
13         <div>
14             <page></page>
15             <label colspan="True"></label>
16             <field></field>
17         </div>
18     </group>
19     <notebook>
20         <page>
21             <group col="Two">
22             <div>
23                 <label></label>
24                 <field colspan="Five"> </field>
25                 </div>
26             </group>
27         </page>
28     </notebook>
29 </form>
30 ''')).getroot()
31
32 valid_form = etree.parse(StringIO('''\
33 <form string="">
34     <field name=""></field>
35     <field name=""></field>
36     <notebook>
37         <page>
38             <field name=""></field>
39             <label string=""></label>
40             <field name=""></field>
41         </page>
42         <page>
43             <group colspan="5" col="2">
44                 <label for=""></label>
45                 <label string="" colspan="5"></label>
46             </group>
47         </page>
48     </notebook>
49 </form>
50 ''')).getroot()
51
52 invalid_graph = etree.parse(StringIO('''\
53 <graph>
54     <label/>
55     <group>
56         <div>
57             <field></field>
58             <field></field>
59         </div>
60     </group>
61 </graph>
62 ''')).getroot()
63
64 valid_graph = etree.parse(StringIO('''\
65 <graph string="">
66     <field name=""></field>
67     <field name=""></field>
68 </graph>
69 ''')).getroot()
70
71 invalid_tree = etree.parse(StringIO('''\
72 <tree>
73   <group>
74     <div>
75       <field></field>
76       <field></field>
77     </div>
78   </group>
79 </tree>
80 ''')).getroot()
81
82 valid_tree= etree.parse(StringIO('''\
83 <tree string="">
84     <field name=""></field>
85     <field name=""></field>
86     <button/>
87     <field name=""></field>
88 </tree>
89 ''')).getroot()
90
91
92 class test_view_validation(unittest2.TestCase):
93     """ Test the view validation code (but not the views themselves). """
94
95     def test_page_validation(self):
96         assert not valid_page_in_book(invalid_form)
97         assert valid_page_in_book(valid_form)
98
99     def test_all_field_validation(self):
100         assert not  valid_att_in_field(invalid_form)
101         assert  valid_att_in_field(valid_form)
102
103     def test_all_label_validation(self):
104         assert not  valid_att_in_label(invalid_form)
105         assert  valid_att_in_label(valid_form)
106
107     def test_form_string_validation(self):
108         assert not valid_att_in_form(invalid_form)
109         assert valid_att_in_form(valid_form)
110
111     def test_graph_validation(self):
112         assert not valid_field_in_graph(invalid_graph)
113         assert valid_field_in_graph(valid_graph)
114
115     def test_tree_validation(self):
116         assert not valid_field_in_tree(invalid_tree)
117         assert valid_field_in_tree(valid_tree)
118
119     def test_colspan_datatype_validation(self):
120         assert not valid_type_in_colspan(invalid_form)
121         assert valid_type_in_colspan(valid_form)
122
123     def test_col_datatype_validation(self):
124         assert not valid_type_in_col(invalid_form)
125         assert valid_type_in_col(valid_form)
126
127
128 if __name__ == '__main__':
129     unittest2.main()