def test_request3(self): """test find_request (xpath as string)""" xpath = '/state[@name = "new"]' collection = find_request(xpath) self.assertTrue(len(collection.request[:]) == 1) self.assertEqual(collection.get('matches'), '1') self.assertEqual(collection.request[0].action.get('type'), 'submit')
def test_request2(self): """test find_request (with validation)""" RequestCollection.SCHEMA = self.fixture_file('collection_request.xsd') xpb = XPathBuilder() xp = xpb.state[xpb.attr('name') == 'new'] collection = find_request(xp) self.assertTrue(len(collection.request[:]) == 1) self.assertEqual(collection.get('matches'), '1') self.assertEqual(collection.request[0].action.get('type'), 'submit') self.assertEqual(collection.request.action.get('type'), 'submit')
def _find_requests(cls, tgt_project, tgt_package, info): """Returns a collection of requests.""" xpb = XPathBuilder(is_relative=True) xp = xpb.dummy() by_kind, xp = cls._build_by_predicate(xpb, info, info.state) if not by_kind: xp = cls._add_states(xpb, xpb.dummy(), info.state) xp = (xpb.state.attr('name') == 'review') & xp.parenthesize() if tgt_project is not None: xp = xp & (xpb.action.target.attr('project') == tgt_project) if tgt_package is not None: xp = xp & (xpb.action.target.attr('package') == tgt_package) logger().debug(xp.tostring()) res = find_request(xp=xp, apiurl=info.apiurl) collection = [r for r in res] return collection
def _find_requests(cls, project, package, info): """Returns a collection of requests.""" xpb = XPathBuilder(is_relative=True) xp = xpb.dummy() # state has at least one element for state in info.state: xp = xp | xpb.state.attr('name') == state xp = xp.parenthesize() if info.user is not None: xp = xp & ((xpb.state.attr('who') == info.user) | (xpb.history.attr('who') == info.user)).parenthesize() if project is not None: tmp = ((xpb.action.target.attr('project') == project) | (xpb.action.source.attr('project') == project)) xp = xp & tmp.parenthesize() if package is not None: tmp = ((xpb.action.target.attr('package') == package) | (xpb.action.source.attr('package') == package)) xp = xp & tmp.parenthesize() logger().debug(xp.tostring()) res = find_request(xp=xp, apiurl=info.apiurl) collection = [r for r in res] return collection
def test_request1(self): """test find_request""" xpb = XPathBuilder() xp = xpb.state[(xpb.attr('name') == 'new') | (xpb.attr('name') == 'review')] xp = xp & (xpb.action.target[xpb.attr('project') == 'prj'] | xpb.action.source[xpb.attr('project') == 'prj'] ).parenthesize() collection = find_request(xp) self.assertTrue(len(collection.request[:]) == 3) self.assertEqual(collection.request[0].get('id'), '1') self.assertEqual(collection.request[0].action.source.get('project'), 'foo') self.assertEqual(collection.request[1].get('id'), '42') self.assertEqual(collection.request[1].action.get('type'), 'submit') self.assertEqual(collection.request[2].get('id'), '108') self.assertEqual(collection.request[2].review[2].get('by_group'), 'autobuild-team') # test __iter__ method of the collection ids = ['1', '42', '108'] for r in collection: self.assertEqual(r.get('id'), ids.pop(0)) self.assertTrue(len(ids) == 0)
def test_request1(self): """test find_request""" xpb = XPathBuilder() xp = xpb.state[(xpb.attr('name') == 'new') | (xpb.attr('name') == 'review')] xp = xp & ( xpb.action.target[xpb.attr('project') == 'prj'] | xpb.action.source[xpb.attr('project') == 'prj']).parenthesize() collection = find_request(xp) self.assertTrue(len(collection.request[:]) == 3) self.assertEqual(collection.request[0].get('id'), '1') self.assertEqual(collection.request[0].action.source.get('project'), 'foo') self.assertEqual(collection.request[1].get('id'), '42') self.assertEqual(collection.request[1].action.get('type'), 'submit') self.assertEqual(collection.request[2].get('id'), '108') self.assertEqual(collection.request[2].review[2].get('by_group'), 'autobuild-team') # test __iter__ method of the collection ids = ['1', '42', '108'] for r in collection: self.assertEqual(r.get('id'), ids.pop(0)) self.assertTrue(len(ids) == 0)