From 337b364bc78d433aa46f7ff24c2f7c5594d6b8ae Mon Sep 17 00:00:00 2001 From: "ajay javiya (OpenERP)" Date: Thu, 26 Jul 2012 14:39:13 +0530 Subject: [PATCH 1/2] [IMP]:Improve in view_validation bzr revid: aja@tinyerp.com-20120726090913-3nikkq1nnpsa051s --- openerp/tests/test_view_validation.py | 22 ++++++++-------- openerp/tools/view_validation.py | 36 +++------------------------ 2 files changed, 14 insertions(+), 44 deletions(-) diff --git a/openerp/tests/test_view_validation.py b/openerp/tests/test_view_validation.py index e41d69bf159..fc586a0c791 100644 --- a/openerp/tests/test_view_validation.py +++ b/openerp/tests/test_view_validation.py @@ -14,7 +14,7 @@ invalid_form = etree.parse(StringIO('''\
- +
@@ -118,8 +118,8 @@ class test_view_validation(unittest2.TestCase): assert not valid_att_in_form(invalid_form) assert valid_att_in_form(valid_form) - assert not valid_form_view(invalid_form) - assert valid_form_view(valid_form) + assert not valid_view(invalid_form) + assert valid_view(valid_form) def test_graph_field_validation(self): assert not valid_field_in_graph(invalid_graph) @@ -129,11 +129,11 @@ class test_view_validation(unittest2.TestCase): assert valid_view(valid_graph) def test_graph_string_validation(self): - assert not valid_att_in_graph(invalid_graph) - assert valid_att_in_graph(valid_graph) + assert not valid_field_in_graph(invalid_graph) + assert valid_field_in_graph(valid_graph) - assert not valid_graph_view(invalid_graph) - assert valid_graph_view(valid_graph) + assert not valid_view(invalid_graph) + assert valid_view(valid_graph) def test_tree_field_validation(self): assert not valid_field_in_tree(invalid_tree) @@ -143,11 +143,11 @@ class test_view_validation(unittest2.TestCase): assert valid_view(valid_tree) def test_tree_string_validation(self): - assert not valid_att_in_tree(invalid_tree) - assert valid_att_in_tree(valid_tree) + assert not valid_field_in_tree(invalid_tree) + assert valid_field_in_tree(valid_tree) - assert not valid_tree_view(invalid_tree) - assert valid_tree_view(valid_tree) + assert not valid_view(invalid_tree) + assert valid_view(valid_tree) def test_colspan_datatype_validation(self): assert not valid_type_in_colspan(invalid_form) diff --git a/openerp/tools/view_validation.py b/openerp/tools/view_validation.py index fb7ed9f9270..4bb47c54551 100644 --- a/openerp/tools/view_validation.py +++ b/openerp/tools/view_validation.py @@ -6,11 +6,11 @@ def valid_page_in_book(arch): def valid_field_in_graph(arch): """A `field` node must be below a `graph` node.""" - return not arch.xpath('//graph[not(field)]') + return not arch.xpath('//graph[not ((field) and (@string))]') def valid_field_in_tree(arch): """A `field` and `button` node must be below a `tree` node.""" - return not arch.xpath('//tree[not((field) and (button))]') + return not arch.xpath('//tree[not((field) and (button) and (@string))]') def valid_att_in_field(arch): """A `name` attribute must be in a `field` node.""" @@ -19,19 +19,11 @@ def valid_att_in_field(arch): def valid_att_in_label(arch): """A `for` and `string` attribute must be in a `label` node.""" return not arch.xpath('//label[not ((@for) or (@string))]') - -def valid_att_in_tree(arch): - """A `string` attribute must be in a `tree` node.""" - return not arch.xpath('//tree[not (@string)]') def valid_att_in_form(arch): """A `string` attribute must be in a `form` node.""" return not arch.xpath('//form[not (@string)]') -def valid_att_in_graph(arch): - """A `string` attribute must be in a `graph` node.""" - return not arch.xpath('//graph[not (@string)]') - def valid_type_in_colspan(arch): """A `colspan` attribute must be an `integer` type.""" for attrib in arch.xpath('//*/@colspan'): @@ -73,32 +65,10 @@ def valid_label_view(arch): if not pred(arch): return False return True - -def valid_tree_view(arch): - if arch.tag == 'tree': - for pred in [valid_att_in_tree]: - if not pred(arch): - return False - return True - -def valid_form_view(arch): - if arch.tag == 'form': - for pred in [valid_att_in_form]: - if not pred(arch): - return False - return True - -def valid_graph_view(arch): - if arch.tag == 'graph': - for pred in [valid_att_in_graph]: - if not pred(arch): - return False - return True - def valid_view(arch): if arch.tag == 'form': - for pred in [valid_page_in_book]: + for pred in [valid_page_in_book,valid_att_in_form]: if not pred(arch): return False elif arch.tag == 'graph': From 74c5af12d5093f2e069baf36c35bb0a8e5c07bad Mon Sep 17 00:00:00 2001 From: "ajay javiya (OpenERP)" Date: Mon, 30 Jul 2012 10:44:46 +0530 Subject: [PATCH 2/2] [IMP]: Improve view validation bzr revid: aja@tinyerp.com-20120730051446-i5krti4889lwbgcn --- openerp/tests/test_view_validation.py | 27 ++++++++++++------------ openerp/tools/view_validation.py | 30 +++------------------------ 2 files changed, 17 insertions(+), 40 deletions(-) diff --git a/openerp/tests/test_view_validation.py b/openerp/tests/test_view_validation.py index fc586a0c791..e5050ead517 100644 --- a/openerp/tests/test_view_validation.py +++ b/openerp/tests/test_view_validation.py @@ -63,8 +63,8 @@ invalid_graph = etree.parse(StringIO('''\ valid_graph = etree.parse(StringIO('''\ - - + + ''')).getroot() @@ -82,9 +82,10 @@ invalid_tree = etree.parse(StringIO('''\ valid_tree= etree.parse(StringIO('''\ - - - + + + + ''')).getroot() @@ -104,15 +105,15 @@ class test_view_validation(unittest2.TestCase): assert not valid_att_in_field(invalid_form) assert valid_att_in_field(valid_form) - assert not valid_field_view(invalid_form) - assert valid_field_view(valid_form) + assert not valid_view(invalid_form) + assert valid_view(valid_form) def test_all_label_validation(self): assert not valid_att_in_label(invalid_form) assert valid_att_in_label(valid_form) - assert not valid_label_view(invalid_form) - assert valid_label_view(valid_form) + assert not valid_view(invalid_form) + assert valid_view(valid_form) def test_form_string_validation(self): assert not valid_att_in_form(invalid_form) @@ -153,15 +154,15 @@ class test_view_validation(unittest2.TestCase): assert not valid_type_in_colspan(invalid_form) assert valid_type_in_colspan(valid_form) - assert not valid_colspan_view(invalid_form) - assert valid_colspan_view(valid_form) + assert not valid_view(invalid_form) + assert valid_view(valid_form) def test_col_datatype_validation(self): assert not valid_type_in_col(invalid_form) assert valid_type_in_col(valid_form) - assert not valid_col_view(invalid_form) - assert valid_col_view(valid_form) + assert not valid_view(invalid_form) + assert valid_view(valid_form) if __name__ == '__main__': diff --git a/openerp/tools/view_validation.py b/openerp/tools/view_validation.py index 4bb47c54551..820d6ae96e5 100644 --- a/openerp/tools/view_validation.py +++ b/openerp/tools/view_validation.py @@ -42,41 +42,17 @@ def valid_type_in_col(arch): return False return True -def valid_colspan_view(arch): - for pred in [valid_type_in_colspan]: - if not pred(arch): - return False - return True - -def valid_col_view(arch): - for pred in [valid_type_in_col]: - if not pred(arch): - return False - return True - -def valid_field_view(arch): - for pred in [valid_att_in_field]: - if not pred(arch): - return False - return True - -def valid_label_view(arch): - for pred in [valid_att_in_label]: - if not pred(arch): - return False - return True - def valid_view(arch): if arch.tag == 'form': - for pred in [valid_page_in_book,valid_att_in_form]: + for pred in [valid_page_in_book,valid_att_in_form,valid_type_in_colspan,valid_type_in_col,valid_att_in_field,valid_att_in_label]: if not pred(arch): return False elif arch.tag == 'graph': - for pred in [valid_field_in_graph]: + for pred in [valid_field_in_graph,valid_type_in_colspan,valid_type_in_col,valid_att_in_field,valid_att_in_label]: if not pred(arch): return False elif arch.tag == 'tree': - for pred in [valid_field_in_tree]: + for pred in [valid_field_in_tree,valid_type_in_colspan,valid_type_in_col,valid_att_in_field,valid_att_in_label]: if not pred(arch): return False return True