[IMP]:Improve in view_validation

bzr revid: aja@tinyerp.com-20120726090913-3nikkq1nnpsa051s
This commit is contained in:
ajay javiya (OpenERP) 2012-07-26 14:39:13 +05:30
parent abd4a068a1
commit 337b364bc7
2 changed files with 14 additions and 44 deletions

View File

@ -14,7 +14,7 @@ invalid_form = etree.parse(StringIO('''\
<group>
<div>
<page></page>
<label colspan="True"> </label>
<label colspan="True"></label>
<field></field>
</div>
</group>
@ -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)

View File

@ -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':