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