def test_fill_testrun_present(self): fname = 'complete_notransform.xml' fname = os.path.join(conf.DATA_PATH, fname) xml_root = utils.get_xml_root(fname) utils.xunit_fill_testrun_id(xml_root, 'not_used') filled = utils.etree_to_string(xml_root) assert 'name="polarion-testrun-id" value="5_8_0_17"' in filled
def submit(xml_str=None, xml_file=None, xml_root=None, config=None, **kwargs): """Submits results to the Polarion Importer.""" try: config = config or configuration.get_config() xml_root = _get_xml_root(xml_root, xml_str, xml_file) credentials = _get_credentials(config, **kwargs) submit_target = _get_submit_target(xml_root, config) utils.xunit_fill_testrun_id(xml_root, kwargs.get('testrun_id')) xml_input = utils.etree_to_string(xml_root) except Dump2PolarionException as err: logger.error(err) return logger.info("Submitting results to {}".format(submit_target)) files = {'file': ('results.xml', xml_input)} try: response = requests.post(submit_target, files=files, auth=credentials, verify=False) # pylint: disable=broad-except except Exception as err: logger.error(err) response = None if response is None: logger.error("Failed to submit results to {}".format(submit_target)) elif response: logger.info("Results received by the Importer (HTTP status {})".format( response.status_code)) else: logger.error("HTTP status {}: failed to submit results to {}".format( response.status_code, submit_target)) return response
def submit(xml_str=None, xml_file=None, xml_root=None, config=None, session=None, **kwargs): """Submits data to the Polarion Importer.""" try: config = config or configuration.get_config() xml_root = _get_xml_root(xml_root, xml_str, xml_file) credentials = _get_credentials(config, **kwargs) submit_target = _get_submit_target(xml_root, config) utils.xunit_fill_testrun_id(xml_root, kwargs.get('testrun_id')) xml_input = utils.etree_to_string(xml_root) session = session or utils.get_session(credentials, config) except Dump2PolarionException as err: logger.error(err) return logger.info("Submitting data to {}".format(submit_target)) files = {'file': ('results.xml', xml_input)} try: response = session.post(submit_target, files=files) # pylint: disable=broad-except except Exception as err: logger.error(err) response = None return validate_response(response, submit_target)
def test_fill_testrun_missing(self): fname = 'properties.xml' xml_root = utils.get_xml_root(os.path.join(conf.DATA_PATH, fname)) utils.xunit_fill_testrun_id(xml_root, '5_8_0_17') filled = utils.etree_to_string(xml_root) assert 'name="polarion-testrun-id" value="5_8_0_17"' in filled
def test_fill_testrun_no_properties(self): xml_root = utils.get_xml_root_from_str('<testsuites/>') with pytest.raises(Dump2PolarionException) as excinfo: utils.xunit_fill_testrun_id(xml_root, '5_8_0_17') assert 'Failed to find <properties> in the XML file' in str( excinfo.value)
def test_fill_testrun_invalid_xml(self): xml_root = utils.get_xml_root_from_str('<invalid/>') with pytest.raises(Dump2PolarionException) as excinfo: utils.xunit_fill_testrun_id(xml_root, '5_8_0_17') assert 'missing <testsuites>' in str(excinfo.value)