def __init__(self, logfile, prefix, suite_name="pytest"): LogXML.__init__(self, logfile, prefix, suite_name) self.stats = manager.dict() self.stats['error'] = 0 self.stats['passed'] = 0 self.stats['failure'] = 0 self.stats['skipped'] = 0 self.stats_lock = manager.Lock()
def test_logxml_path_expansion(tmpdir, monkeypatch): home_tilde = py.path.local(os.path.expanduser("~")).join("test.xml") xml_tilde = LogXML("~%stest.xml" % tmpdir.sep, None) assert xml_tilde.logfile == home_tilde monkeypatch.setenv("HOME", str(tmpdir)) home_var = os.path.normpath(os.path.expandvars("$HOME/test.xml")) xml_var = LogXML("$HOME%stest.xml" % tmpdir.sep, None) assert xml_var.logfile == home_var
def test_logxml_path_expansion(tmpdir, monkeypatch): home_tilde = py.path.local(os.path.expanduser('~')).join('test.xml') xml_tilde = LogXML('~%stest.xml' % tmpdir.sep, None) assert xml_tilde.logfile == home_tilde # this is here for when $HOME is not set correct monkeypatch.setenv("HOME", tmpdir) home_var = os.path.normpath(os.path.expandvars('$HOME/test.xml')) xml_var = LogXML('$HOME%stest.xml' % tmpdir.sep, None) assert xml_var.logfile == home_var
def pytest_sessionfinish(self, session): """ """ assert (self.mpi_reporter.post_done == True) # print("\n", self.comm.Get_rank(), "LogXMLMPI::pytest_sessionfinish flag 4") for i_report, report in self.mpi_reporter.reports_gather.items(): # print(i_report, " ---> ", report) LogXML.pytest_runtest_logreport(self, report[0]) LogXML.pytest_sessionfinish(self)
def test_global_properties(testdir): path = testdir.tmpdir.join("test_global_properties.xml") log = LogXML(str(path), None) from _pytest.runner import BaseReport class Report(BaseReport): sections = [] nodeid = "test_node_id" log.pytest_sessionstart() log.add_global_property('foo', 1) log.add_global_property('bar', 2) log.pytest_sessionfinish() dom = minidom.parse(str(path)) properties = dom.getElementsByTagName('properties') assert (properties.length == 1), "There must be one <properties> node" property_list = dom.getElementsByTagName('property') assert (property_list.length == 2), "There most be only 2 property nodes" expected = {'foo': '1', 'bar': '2'} actual = {} for p in property_list: k = str(p.getAttribute('name')) v = str(p.getAttribute('value')) actual[k] = v assert actual == expected
def test_logxml_path_expansion(tmpdir, monkeypatch): from _pytest.junitxml import LogXML home_tilde = os.path.normpath(os.path.expanduser('~/test.xml')) xml_tilde = LogXML('~/test.xml', None) assert xml_tilde.logfile == home_tilde # this is here for when $HOME is not set correct monkeypatch.setenv("HOME", tmpdir) home_var = os.path.normpath(os.path.expandvars('$HOME/test.xml')) xml_var = LogXML('$HOME/test.xml', None) assert xml_var.logfile == home_var
def test_global_properties(testdir, xunit_family): path = testdir.tmpdir.join("test_global_properties.xml") log = LogXML(str(path), None, family=xunit_family) class Report(BaseReport): sections = [] nodeid = "test_node_id" log.pytest_sessionstart() log.add_global_property("foo", 1) log.add_global_property("bar", 2) log.pytest_sessionfinish() dom = minidom.parse(str(path)) properties = dom.getElementsByTagName("properties") assert properties.length == 1, "There must be one <properties> node" property_list = dom.getElementsByTagName("property") assert property_list.length == 2, "There most be only 2 property nodes" expected = {"foo": "1", "bar": "2"} actual = {} for p in property_list: k = str(p.getAttribute("name")) v = str(p.getAttribute("value")) actual[k] = v assert actual == expected
def __init__(self, comm, mpi_reporter, logfile, prefix, suite_name="pytest", logging="no", report_duration="total", family="xunit1", log_passing_tests=True): """ """ LogXML.__init__(self, logfile, prefix, suite_name, logging, report_duration, family, log_passing_tests) self.comm = comm self.mpi_reporter = mpi_reporter
def test_global_properties(testdir): path = testdir.tmpdir.join("test_global_properties.xml") log = LogXML(str(path), None) from _pytest.runner import BaseReport class Report(BaseReport): sections = [] nodeid = "test_node_id" log.pytest_sessionstart() log.add_global_property("foo", 1) log.add_global_property("bar", 2) log.pytest_sessionfinish() dom = minidom.parse(str(path)) properties = dom.getElementsByTagName("properties") assert properties.length == 1, "There must be one <properties> node" property_list = dom.getElementsByTagName("property") assert property_list.length == 2, "There most be only 2 property nodes" expected = {"foo": "1", "bar": "2"} actual = {} for p in property_list: k = str(p.getAttribute("name")) v = str(p.getAttribute("value")) actual[k] = v assert actual == expected
def test_unicode_issue368(testdir): path = testdir.tmpdir.join("test.xml") log = LogXML(str(path), None) ustr = py.builtin._totext("ВНИ!", "utf-8") from _pytest.runner import BaseReport class Report(BaseReport): longrepr = ustr sections = [] nodeid = "something" location = 'tests/filename.py', 42, 'TestClass.method' test_report = Report() # hopefully this is not too brittle ... log.pytest_sessionstart() node_reporter = log._opentestcase(test_report) node_reporter.append_failure(test_report) node_reporter.append_collect_error(test_report) node_reporter.append_collect_skipped(test_report) node_reporter.append_error(test_report) test_report.longrepr = "filename", 1, ustr node_reporter.append_skipped(test_report) test_report.longrepr = "filename", 1, "Skipped: 卡嘣嘣" node_reporter.append_skipped(test_report) test_report.wasxfail = ustr node_reporter.append_skipped(test_report) log.pytest_sessionfinish()
def test_url_property(testdir): test_url = "http://www.github.com/pytest-dev" path = testdir.tmpdir.join("test_url_property.xml") log = LogXML(str(path), None) from _pytest.runner import BaseReport class Report(BaseReport): longrepr = "FooBarBaz" sections = [] nodeid = "something" location = "tests/filename.py", 42, "TestClass.method" url = test_url test_report = Report() log.pytest_sessionstart() node_reporter = log._opentestcase(test_report) node_reporter.append_failure(test_report) log.pytest_sessionfinish() test_case = minidom.parse(str(path)).getElementsByTagName("testcase")[0] assert ( test_case.getAttribute("url") == test_url ), "The URL did not get written to the xml"
def test_unicode_issue368(testdir): path = testdir.tmpdir.join("test.xml") log = LogXML(str(path), None) ustr = py.builtin._totext("ВНИ!", "utf-8") from _pytest.runner import BaseReport class Report(BaseReport): longrepr = ustr sections = [] nodeid = "something" location = "tests/filename.py", 42, "TestClass.method" test_report = Report() # hopefully this is not too brittle ... log.pytest_sessionstart() node_reporter = log._opentestcase(test_report) node_reporter.append_failure(test_report) node_reporter.append_collect_error(test_report) node_reporter.append_collect_skipped(test_report) node_reporter.append_error(test_report) test_report.longrepr = "filename", 1, ustr node_reporter.append_skipped(test_report) test_report.longrepr = "filename", 1, "Skipped: 卡嘣嘣" node_reporter.append_skipped(test_report) test_report.wasxfail = ustr node_reporter.append_skipped(test_report) log.pytest_sessionfinish()
def test_unicode_issue368(testdir): path = testdir.tmpdir.join("test.xml") log = LogXML(str(path), None) ustr = py.builtin._totext("ВНИ!", "utf-8") class report: longrepr = ustr sections = [] nodeid = "something" # hopefully this is not too brittle ... log.pytest_sessionstart() log._opentestcase(report) log.append_failure(report) log.append_collect_failure(report) log.append_collect_skipped(report) log.append_error(report) report.longrepr = "filename", 1, ustr log.append_skipped(report) report.wasxfail = ustr log.append_skipped(report) log.pytest_sessionfinish()