def print_links_for_requirement(self, req_id): req = Requirement(Requirement.default_project, req_id) print('ID%-12sRole' % ('')) print('-------%7s------' % ('')) for linked in req.linked_work_items_derived: print('%-13s %-13s' % (linked.work_item_id, linked.role))
def test_012_get_back_linked_work_items(self): req = Requirement(project_id=DEFAULT_PROJ, work_item_id=self.work_item_id_2) items = req.get_back_linked_work_items() self.assertTrue(len(items) == 1) wi = items[0] self.assertEqual(wi.work_item_id, self.work_item_id)
def test_013_multiple_types(self): req = Requirement() tc = TestCase() with self.assertRaises(AttributeError): tc.reqtype with self.assertRaises(AttributeError): req.caseimportance req.title = "req1" tc.title = "tc1" self.assertNotEqual(req.title, tc.title)
def test_custom_workitem(self): tc2 = TestCase(project_id=DEFAULT_PROJ, work_item_id=self.TEST_CASE_ID) self.assertIsNotNone(tc2.caseautomation) with self.assertRaises(PylarionLibException): tc2.caseautomation = "bad" tc2.caseautomation = "automated" # check for shared memory issue self.assertNotEqual(self.tc.caseautomation, tc2.caseautomation) req = Requirement() with self.assertRaises(PylarionLibException): req.reqtype = "bad" req.reqtype = 'functional'
def test_007_add_linked_work_item(self): tc = TestCase(project_id=DEFAULT_PROJ, work_item_id=self.work_item_id) self.assertTrue(tc.add_linked_item(self.work_item_id_2, "verifies")) tc2 = TestCase(project_id=DEFAULT_PROJ, work_item_id=self.work_item_id) self.assertTrue(len(tc2.linked_work_items) == 1) link = tc2.linked_work_items[0] self.assertEqual(link.work_item_id, self.work_item_id_2) self.assertEqual(link.role, "verifies") req3 = Requirement(project_id=DEFAULT_PROJ, work_item_id=self.work_item_id_2) self.assertTrue(len(req3.linked_work_items_derived) == 1) link = req3.linked_work_items_derived[0] self.assertEqual(link.work_item_id, self.work_item_id) self.assertEqual(link.role, "verifies")
def isRequirementInPolarion(bug_id, bug_project): #i was wrong you can search on hyperlink like this #select tc.c_id from WORKITEM tc inner join PROJECT on PROJECT.C_URI = tc.FK_URI_PROJECT left join struct_workitem_hyperlinks hlink on tc.c_uri=hlink.fk_uri_p_workitem where PROJECT.C_ID = 'Polarion' and tc.C_TYPE = 'requirement' and hlink.c_url LIKE '%1011755%' query_str = "SELECT tc.c_uri from WORKITEM tc join project proj on proj.c_uri=tc.fk_uri_project where proj.c_id='%s' and tc.c_title like ('BZ_id=%s%%') and tc.c_type = 'requirement'" % (bug_project, bug_id) for i in range(0, 10): # WA for Polarion disconnection from time to time try: items = _WorkItem.query(query_str, is_sql=True, fields=["work_item_id", "title"]) if len(items) > 0: for item in items: tc = Requirement(uri=item.uri) print "\n" + tc.work_item_id print "\nRequirement already in Polarion: " + str(bug_id) return True break except Exception as inst: print inst i += 1 time.sleep(10) return False