def test_missing_testrun_id(self, config_prop, captured_log): submit.submit_and_verify( "<testsuites><properties></properties></testsuites>", config=config_prop, user="******", password="******", session="foo", no_verify=True, ) assert "missing testrun id" in captured_log.getvalue()
def test_fill_testrun_submit(self, config_prop): fname = "properties.xml" submit.submit_and_verify( xml_file=os.path.join(conf.DATA_PATH, fname), testrun_id="5_8_0_17", config=config_prop, user="******", password="******", session=DummySession(DummyResponse), no_verify=True, )
def initial_submit(args, submit_args, config, log): """Submits XML to Polarion and saves the log file returned by the message bus.""" if os.path.isfile(log) and not args.testrun_init: # log file already exists, no need to generate one return elif args.no_submit: raise NothingToDoException( 'Instructed not to submit and as the message bus log is missing, ' 'there\'s nothing more to do') if args.testrun_init: # we want to init new test run fname = _TEST_RUN_XML xml_root = utils.get_xml_root(fname) else: # we want to just get the log file without changing anything fname = _TEST_CASE_XML xml_root = utils.get_xml_root(fname) utils.set_dry_run(xml_root) utils.set_lookup_method(xml_root, 'name') utils.remove_response_property(xml_root) if args.output_dir: path, name = os.path.split(fname) init_file = _get_import_file_name(args, name, args.output_dir or path, 'init') utils.write_xml(xml_root, init_file) if not submit.submit_and_verify( xml_root=xml_root, config=config, log_file=log, **submit_args): raise TestcasesException('Failed to do the initial submit')
def create_missing_testcases(args, submit_args, config, filtered_xmls): """Creates missing testcases in Polarion.""" job_log = _get_job_log(args, 'testcases') retval = submit.submit_and_verify(xml_root=filtered_xmls.missing_testcases, config=config, log_file=job_log, **submit_args) return retval
def test_verify_none(self, config_prop, captured_log): input_file = os.path.join(conf.DATA_PATH, 'complete_transform.xml') with patch('requests.post'), \ patch('dump2polarion.msgbus.get_verification_func', return_value=None): response = submit.submit_and_verify( xml_file=input_file, config=config_prop, user='******', password='******') assert not response assert 'Results received' in captured_log.getvalue()
def add_missing_testcases_to_testrun(args, submit_args, config, filtered_xmls): """Adds missing testcases to testrun.""" job_log = _get_job_log(args, 'testrun') retval = submit.submit_and_verify( xml_root=filtered_xmls.missing_testsuites, config=config, log_file=job_log, **submit_args) return retval
def test_no_verify(self, config_prop, captured_log): input_file = os.path.join(conf.DATA_PATH, 'complete_transform.xml') with patch('requests.post'): response = submit.submit_and_verify(xml_file=input_file, config=config_prop, user='******', password='******', no_verify=True) assert response assert 'Results received' in captured_log.getvalue()
def test_file_testsuites_none(self, config_prop, captured_log): input_file = os.path.join(conf.DATA_PATH, "complete_transform.xml") response = submit.submit_and_verify( xml_file=input_file, config=config_prop, user="******", password="******", session=DummySession(lambda: None), no_verify=True, ) assert not response assert "Failed to submit" in captured_log.getvalue()
def test_verify_success(self, config_prop, captured_log): input_file = os.path.join(conf.DATA_PATH, 'complete_transform.xml') with patch('requests.post'), \ patch('dump2polarion.verify.QueueSearch') as mock: instance = mock.return_value instance.queue_init.return_value = True instance.verify_submit.return_value = True response = submit.submit_and_verify(xml_file=input_file, config=config_prop, user='******', password='******') assert response assert 'Results received' in captured_log.getvalue()
def test_no_verify(self, config_prop, captured_log): input_file = os.path.join(conf.DATA_PATH, "complete_transform.xml") response = submit.submit_and_verify( xml_file=input_file, config=config_prop, user="******", password="******", session=DummySession( lambda: DummyResponse({"files": {"results.xml": {"job-ids": [1, 2]}}}) ), no_verify=True, ) assert response assert "Results received" in captured_log.getvalue()
def test_file_testcases_success(self, config_prop, captured_log): input_file = os.path.join(conf.DATA_PATH, "testcases.xml") response = submit.submit_and_verify( xml_file=input_file, config=config_prop, user="******", password="******", session=DummySession( lambda: DummyResponse({"files": {"results.xml": {"job-ids": [1, 2]}}}) ), no_verify=True, ) assert response logged_data = captured_log.getvalue() assert "Results received" in logged_data assert "Job ID" in logged_data
def test_verify_success(self, config_prop, captured_log): input_file = os.path.join(conf.DATA_PATH, "complete_transform.xml") with patch("dump2polarion.verify.QueueSearch") as mock: instance = mock.return_value instance.verify_submit.return_value = True response = submit.submit_and_verify( xml_file=input_file, config=config_prop, user="******", password="******", session=DummySession( lambda: DummyResponse({"files": {"results.xml": {"job-ids": [1, 2]}}}) ), ) assert response assert "Results received" in captured_log.getvalue()
def test_file_testsuites_exception(self, config_prop, captured_log): def _raise(): raise Exception("request failed") input_file = os.path.join(conf.DATA_PATH, "complete_transform.xml") response = submit.submit_and_verify( xml_file=input_file, config=config_prop, user="******", password="******", session=DummySession(_raise), no_verify=True, ) assert not response logged_data = captured_log.getvalue() assert "request failed" in logged_data assert "Failed to submit" in logged_data
def test_no_verify(self, config_prop, captured_log): input_file = os.path.join(conf.DATA_PATH, 'complete_transform.xml') response = submit.submit_and_verify( xml_file=input_file, config=config_prop, user='******', password='******', session=DummySession(lambda: DummyResponse( {'files': { 'results.xml': { 'job-ids': [1, 2] } }})), no_verify=True, ) assert response assert 'Results received' in captured_log.getvalue()
def test_verify_success(self, config_prop, captured_log): input_file = os.path.join(conf.DATA_PATH, 'complete_transform.xml') with patch('dump2polarion.verify.QueueSearch') as mock: instance = mock.return_value instance.verify_submit.return_value = True response = submit.submit_and_verify( xml_file=input_file, config=config_prop, user='******', password='******', session=DummySession(lambda: DummyResponse( {'files': { 'results.xml': { 'job-ids': [1, 2] } }}))) assert response assert 'Results received' in captured_log.getvalue()
def test_file_testsuites_failure(self, config_prop, captured_log): class Response: def __init__(self): self.status_code = 404 self.url = "foo" def __len__(self): return 0 input_file = os.path.join(conf.DATA_PATH, "complete_transform.xml") response = submit.submit_and_verify( xml_file=input_file, config=config_prop, user="******", password="******", session=DummySession(Response), no_verify=True, ) assert not response assert "HTTP status 404: failed to submit" in captured_log.getvalue()
def test_missing_input(self, config_prop, captured_log): with patch('requests.post'): submit.submit_and_verify('', config=config_prop) assert 'no data supplied' in captured_log.getvalue()
def _run_submit(results, args_dict): retval = submit.submit_and_verify(**args_dict) results.append(retval)
def test_missing_target(self, config_prop, captured_log): submit.submit_and_verify("<foo/>", config=config_prop, no_verify=True) assert "submit target not found" in captured_log.getvalue()
def test_missing_credentials(self, config_prop, captured_log): submit.submit_and_verify("<testcases/>", config=config_prop, no_verify=True) assert "missing credentials" in captured_log.getvalue()
def test_missing_input(self, config_prop, captured_log): submit.submit_and_verify("", config=config_prop, no_verify=True) assert "no data supplied" in captured_log.getvalue()