Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 754144
Collapse All | Expand All

(-)a/html5lib/tests/conftest.py (-3 / +12 lines)
Lines 99-108 def pytest_collect_file(path, parent): Link Here
99
99
100
    if _tree_construction in dir_and_parents:
100
    if _tree_construction in dir_and_parents:
101
        if path.ext == ".dat":
101
        if path.ext == ".dat":
102
            return TreeConstructionFile(path, parent)
102
            return TreeConstructionFile.from_parent(parent, fspath=path)
103
    elif _tokenizer in dir_and_parents:
103
    elif _tokenizer in dir_and_parents:
104
        if path.ext == ".test":
104
        if path.ext == ".test":
105
            return TokenizerFile(path, parent)
105
            return TokenizerFile.from_parent(parent, fspath=path)
106
    elif _sanitizer_testdata in dir_and_parents:
106
    elif _sanitizer_testdata in dir_and_parents:
107
        if path.ext == ".dat":
107
        if path.ext == ".dat":
108
            return SanitizerFile(path, parent)
108
            return SanitizerFile.from_parent(parent, fspath=path)
109
110
111
# Tiny wrapper to allow .from_parent constructors on older pytest for PY27
112
if not hasattr(pytest.Item.__base__, "from_parent"):
113
    @classmethod
114
    def from_parent(cls, parent, **kwargs):
115
        return cls(parent=parent, **kwargs)
116
117
    pytest.Item.__base__.from_parent = from_parent
(-)a/html5lib/tests/sanitizer.py (-1 / +1 lines)
Lines 13-19 def collect(self): Link Here
13
        with codecs.open(str(self.fspath), "r", encoding="utf-8") as fp:
13
        with codecs.open(str(self.fspath), "r", encoding="utf-8") as fp:
14
            tests = json.load(fp)
14
            tests = json.load(fp)
15
        for i, test in enumerate(tests):
15
        for i, test in enumerate(tests):
16
            yield SanitizerTest(str(i), self, test=test)
16
            yield SanitizerTest.from_parent(self, name=str(i), test=test)
17
17
18
18
19
class SanitizerTest(pytest.Item):
19
class SanitizerTest(pytest.Item):
(-)a/html5lib/tests/tokenizer.py (-5 / +5 lines)
Lines 192-198 def collect(self): Link Here
192
            tests = json.load(fp)
192
            tests = json.load(fp)
193
        if 'tests' in tests:
193
        if 'tests' in tests:
194
            for i, test in enumerate(tests['tests']):
194
            for i, test in enumerate(tests['tests']):
195
                yield TokenizerTestCollector(str(i), self, testdata=test)
195
                yield TokenizerTestCollector.from_parent(self, name=str(i), testdata=test)
196
196
197
197
198
class TokenizerTestCollector(pytest.Collector):
198
class TokenizerTestCollector(pytest.Collector):
Lines 207-216 def __init__(self, name, parent=None, config=None, session=None, testdata=None): Link Here
207
    def collect(self):
207
    def collect(self):
208
        for initialState in self.testdata["initialStates"]:
208
        for initialState in self.testdata["initialStates"]:
209
            initialState = capitalize(initialState)
209
            initialState = capitalize(initialState)
210
            item = TokenizerTest(initialState,
210
            item = TokenizerTest.from_parent(self,
211
                                 self,
211
                                             name=initialState,
212
                                 self.testdata,
212
                                             test=self.testdata,
213
                                 initialState)
213
                                             initialState=initialState)
214
            if self.testdata["input"] is None:
214
            if self.testdata["input"] is None:
215
                item.add_marker(pytest.mark.skipif(True, reason="Relies on lone surrogates"))
215
                item.add_marker(pytest.mark.skipif(True, reason="Relies on lone surrogates"))
216
            yield item
216
            yield item
(-)a/html5lib/tests/tree_construction.py (-10 / +10 lines)
Lines 26-32 class TreeConstructionFile(pytest.File): Link Here
26
    def collect(self):
26
    def collect(self):
27
        tests = TestData(str(self.fspath), "data")
27
        tests = TestData(str(self.fspath), "data")
28
        for i, test in enumerate(tests):
28
        for i, test in enumerate(tests):
29
            yield TreeConstructionTest(str(i), self, testdata=test)
29
            yield TreeConstructionTest.from_parent(self, name=str(i), testdata=test)
30
30
31
31
32
class TreeConstructionTest(pytest.Collector):
32
class TreeConstructionTest(pytest.Collector):
Lines 48-58 def _getParserTests(self, treeName, treeAPIs): Link Here
48
                nodeid = "%s::parser::namespaced" % treeName
48
                nodeid = "%s::parser::namespaced" % treeName
49
            else:
49
            else:
50
                nodeid = "%s::parser::void-namespace" % treeName
50
                nodeid = "%s::parser::void-namespace" % treeName
51
            item = ParserTest(nodeid,
51
            item = ParserTest.from_parent(self,
52
                              self,
52
                                          name=nodeid,
53
                              self.testdata,
53
                                          test=self.testdata,
54
                              treeAPIs["builder"] if treeAPIs is not None else None,
54
                                          treeClass=treeAPIs["builder"] if treeAPIs is not None else None,
55
                              namespaceHTMLElements)
55
                                          namespaceHTMLElements=namespaceHTMLElements)
56
            item.add_marker(getattr(pytest.mark, treeName))
56
            item.add_marker(getattr(pytest.mark, treeName))
57
            item.add_marker(pytest.mark.parser)
57
            item.add_marker(pytest.mark.parser)
58
            if namespaceHTMLElements:
58
            if namespaceHTMLElements:
Lines 61-70 def _getParserTests(self, treeName, treeAPIs): Link Here
61
61
62
    def _getTreeWalkerTests(self, treeName, treeAPIs):
62
    def _getTreeWalkerTests(self, treeName, treeAPIs):
63
        nodeid = "%s::treewalker" % treeName
63
        nodeid = "%s::treewalker" % treeName
64
        item = TreeWalkerTest(nodeid,
64
        item = TreeWalkerTest.from_parent(self,
65
                              self,
65
                                          name=nodeid,
66
                              self.testdata,
66
                                          test=self.testdata,
67
                              treeAPIs)
67
                                          treeAPIs=treeAPIs)
68
        item.add_marker(getattr(pytest.mark, treeName))
68
        item.add_marker(getattr(pytest.mark, treeName))
69
        item.add_marker(pytest.mark.treewalker)
69
        item.add_marker(pytest.mark.treewalker)
70
        yield item
70
        yield item
(-)a/requirements-test.txt (-1 / +1 lines)
Lines 3-9 Link Here
3
tox>=3.15.1,<4
3
tox>=3.15.1,<4
4
flake8>=3.8.1,<3.9
4
flake8>=3.8.1,<3.9
5
pytest>=4.6.10,<5 ; python_version < '3'
5
pytest>=4.6.10,<5 ; python_version < '3'
6
pytest>=5.4.2,<6 ; python_version >= '3'
6
pytest>=5.4.2,<7 ; python_version >= '3'
7
coverage>=5.1,<6
7
coverage>=5.1,<6
8
pytest-expect>=1.1.0,<2
8
pytest-expect>=1.1.0,<2
9
mock>=3.0.5,<4 ; python_version < '3.6'
9
mock>=3.0.5,<4 ; python_version < '3.6'

Return to bug 754144