|
1 | 1 | from __future__importabsolute_import,division,unicode_literals
|
2 | 2 |
|
| 3 | +importitertools |
| 4 | + |
3 | 5 | importpytest
|
4 | 6 |
|
5 | 7 | try:
|
@@ -100,6 +102,24 @@ def test_treewalker_six_mix():
|
100 | 102 | yieldrunTreewalkerEditTest,intext,expected,attrs,tree
|
101 | 103 |
|
102 | 104 |
|
| 105 | +@pytest.mark.parametrize("tree,char",itertools.product(sorted(treeTypes.items()), ["x","\u1234"])) |
| 106 | +deftest_fragment_single_char(tree,char): |
| 107 | +expected= [ |
| 108 | + {'data':char,'type':'Characters'} |
| 109 | + ] |
| 110 | + |
| 111 | +treeName,treeClass=tree |
| 112 | +iftreeClassisNone: |
| 113 | +pytest.skip("Treebuilder not loaded") |
| 114 | + |
| 115 | +parser=html5parser.HTMLParser(tree=treeClass["builder"]) |
| 116 | +document=parser.parseFragment(char) |
| 117 | +document=treeClass.get("adapter",lambdax:x)(document) |
| 118 | +output=Lint(treeClass["walker"](document)) |
| 119 | + |
| 120 | +assertlist(output)==expected |
| 121 | + |
| 122 | + |
103 | 123 | @pytest.mark.skipif(treeTypes["lxml"]isNone,reason="lxml not importable")
|
104 | 124 | deftest_lxml_xml():
|
105 | 125 | expected= [
|
|