def install_marshall_registry(self, out): from Products.Marshall.predicates import add_predicate from Products.Marshall.config import TOOL_ID as marshall_tool_id tool = getToolByName(self, marshall_tool_id) for predicate in MARSHALL_PREDICATES: existing = tool._getOb(predicate['id'], None) if existing is not None: tool.manage_delObjects(ids=[predicate['id']]) print >> out, 'Replacing existing predicate %s' % predicate['id'] add_predicate(tool, **predicate) print >> out, 'Added predicate %s' % predicate['id']
def test_expression_filename(self): add_predicate(self.tool, id='doc', title='.doc extension', predicate='default', expression="python: filename and filename.endswith('.doc')", component_name='primary_field') add_predicate(self.tool, id='txt', title='.txt extension', predicate='default', expression="python: filename and filename.endswith('.txt')", component_name='rfc822') add_predicate(self.tool, id='default', title='default', predicate='default', expression='', component_name='primary_field') self.assertEquals( self.get(None, filename='sample.doc'), ('primary_field',)) self.assertEquals( self.get(None, filename='sample.txt'), ('rfc822', 'primary_field')) # Make sure reordering the predicates does change the order # in which ids are returned. self.reverse() self.assertEquals( self.get(None, filename='sample.txt'), ('primary_field', 'rfc822')) self.assertEquals(self.get(None, filename='sample.rot'), ('primary_field',)) # Make sure it works even if no filename kw is passed in self.assertEquals(self.get(None), ('primary_field',))
def test_expression_data(self): add_predicate( self.tool, id='data_len_3', title='data length > 3', predicate='default', expression="python: data and len(data) > 3", component_name='primary_field') add_predicate( self.tool, id='data_len_2', title='data length == 2', predicate='default', expression="python: data and len(data) == 2", component_name='rfc822') add_predicate( self.tool, id='default', title='default', predicate='default', expression='', component_name='primary_field') self.assertEquals(self.get(None, data='4242'), ('primary_field',)) self.assertEquals(self.get(None, data='42'), ('rfc822', 'primary_field')) # Make sure reordering the predicates does change the order # in which ids are returned. self.reverse() self.assertEquals(self.get(None, data='42'), ('primary_field', 'rfc822')) # Make sure it works even if no data kw is passed in self.assertEquals(self.get(None), ('primary_field',))
def test_expression_data(self): add_predicate(self.tool, id='data_len_3', title='data length > 3', predicate='default', expression="python: data and len(data) > 3", component_name='primary_field') add_predicate(self.tool, id='data_len_2', title='data length == 2', predicate='default', expression="python: data and len(data) == 2", component_name='rfc822') add_predicate(self.tool, id='default', title='default', predicate='default', expression='', component_name='primary_field') self.assertEquals(self.get(None, data='4242'), ('primary_field', )) self.assertEquals(self.get(None, data='42'), ('rfc822', 'primary_field')) # Make sure reordering the predicates does change the order # in which ids are returned. self.reverse() self.assertEquals(self.get(None, data='42'), ('primary_field', 'rfc822')) # Make sure it works even if no data kw is passed in self.assertEquals(self.get(None), ('primary_field', ))
def test_xmlns_element(self): p = add_predicate(self.tool, id='xmlns_attr', title='xmlns', predicate='xmlns_attr', expression='', component_name='primary_field') p.edit(element_name='test', value=None) data = """<?xml version="1.0" encoding="UTF-8"?> <test> Doesn't Matter </test> """ self.assertEquals(self.get(None, data=data), ('primary_field', ))
def test_xmlns_element_ns_att(self): p = add_predicate( self.tool, id='xmlns_attr', title='xmlns', predicate='xmlns_attr', expression='', component_name='primary_field') p.edit(element_ns='http://foo.com/bar', element_name='test', attr_name='wot', value='FooBar') data = """<?xml version="1.0" encoding="UTF-8"?> <t:test xmlns:t="http://foo.com/bar" wot="FooBar" /> """ self.assertEquals(self.get(None, data=data), ('primary_field',))
def test_xmlns_element(self): p = add_predicate( self.tool, id='xmlns_attr', title='xmlns', predicate='xmlns_attr', expression='', component_name='primary_field') p.edit(element_name='test', value=None) data = """<?xml version="1.0" encoding="UTF-8"?> <test> Doesn't Matter </test> """ self.assertEquals(self.get(None, data=data), ('primary_field',))
def test_xmlns_element_ns_att(self): p = add_predicate(self.tool, id='xmlns_attr', title='xmlns', predicate='xmlns_attr', expression='', component_name='primary_field') p.edit(element_ns='http://foo.com/bar', element_name='test', attr_name='wot', value='FooBar') data = """<?xml version="1.0" encoding="UTF-8"?> <t:test xmlns:t="http://foo.com/bar" wot="FooBar" /> """ self.assertEquals(self.get(None, data=data), ('primary_field', ))
def test_expression_content_type(self): add_predicate( self.tool, id='text_xml', title='text/xml content type', predicate='default', expression= "python: content_type and content_type == 'text/xml'", component_name='simple_xml') add_predicate( self.tool, id='text_plain', title='text/plain content type', predicate='default', expression= "python: content_type and content_type == 'text/plain'", component_name='rfc822') add_predicate(self.tool, id='default', title='default', predicate='default', expression="", component_name='primary_field') self.assertEquals(self.get(None, content_type='text/xml'), ('simple_xml', 'primary_field')) self.assertEquals(self.get(None, content_type='text/plain'), ('rfc822', 'primary_field')) # Make sure reordering the predicates does change the order # in which ids are returned. self.reverse() self.assertEquals(self.get(None, content_type='text/plain'), ('primary_field', 'rfc822')) # Make sure it works even if no content_type kw is passed in self.assertEquals(self.get(None), ('primary_field', ))
def test_expression_filename(self): add_predicate( self.tool, id='doc', title='.doc extension', predicate='default', expression="python: filename and filename.endswith('.doc')", component_name='primary_field') add_predicate( self.tool, id='txt', title='.txt extension', predicate='default', expression="python: filename and filename.endswith('.txt')", component_name='rfc822') add_predicate(self.tool, id='default', title='default', predicate='default', expression='', component_name='primary_field') self.assertEquals(self.get(None, filename='sample.doc'), ('primary_field', )) self.assertEquals(self.get(None, filename='sample.txt'), ('rfc822', 'primary_field')) # Make sure reordering the predicates does change the order # in which ids are returned. self.reverse() self.assertEquals(self.get(None, filename='sample.txt'), ('primary_field', 'rfc822')) self.assertEquals(self.get(None, filename='sample.rot'), ('primary_field', )) # Make sure it works even if no filename kw is passed in self.assertEquals(self.get(None), ('primary_field', ))
def test_expression_content_type(self): add_predicate( self.tool, id='text_xml', title='text/xml content type', predicate='default', expression="python: content_type and content_type == 'text/xml'", component_name='simple_xml') add_predicate( self.tool, id='text_plain', title='text/plain content type', predicate='default', expression="python: content_type and content_type == 'text/plain'", component_name='rfc822') add_predicate( self.tool, id='default', title='default', predicate='default', expression="", component_name='primary_field') self.assertEquals( self.get(None, content_type='text/xml'), ('simple_xml', 'primary_field')) self.assertEquals(self.get(None, content_type='text/plain'), ('rfc822', 'primary_field')) # Make sure reordering the predicates does change the order # in which ids are returned. self.reverse() self.assertEquals(self.get(None, content_type='text/plain'), ('primary_field', 'rfc822')) # Make sure it works even if no content_type kw is passed in self.assertEquals(self.get(None), ('primary_field',))