Пример #1
0
 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()
Пример #2
0
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
Пример #3
0
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
Пример #4
0
    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)
Пример #5
0
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
Пример #6
0
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
Пример #7
0
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
Пример #8
0
    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
Пример #9
0
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
Пример #10
0
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()
Пример #11
0
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
Пример #12
0
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"
Пример #13
0
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()
Пример #14
0
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()
Пример #15
0
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()