-
Notifications
You must be signed in to change notification settings - Fork 29
/
test-etree.yml
139 lines (130 loc) · 5.75 KB
/
test-etree.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
- case: etree_from_string_returns_element
disable_cache: true
main: |
from lxml import etree
document = etree.fromstring("<doc></doc>")
reveal_type(document) # N: Revealed type is "lxml.etree._Element"
- case: etree_from_empty_string_with_parser_recovery_returns_none
disable_cache: true
main: |
from lxml import etree
parser = etree.HTMLParser(recover=True)
document = etree.fromstring("", parser)
reveal_type(document) # N: Revealed type is "Union[lxml.etree._Element, Any]"
- case: etree_element_find
disable_cache: true
main: |
from lxml import etree
element = etree.Element("foo")
result = element.find("/my-path/")
reveal_type(result) # N: Revealed type is "Union[lxml.etree._Element, None]"
- case: etree_element_get
disable_cache: true
main: |
from lxml import etree
element = etree.Element("foo")
result = element.get("my-attr")
reveal_type(result) # N: Revealed type is "Union[builtins.str, None]"
- case: etree_element_iterchildren
disable_cache: true
main: |
from lxml import etree
element = etree.Element("foo")
reveal_type(element.iterchildren) # N: Revealed type is "def (tag: Union[Union[builtins.str, builtins.bytes, lxml.etree.QName], typing.Collection[Union[builtins.str, builtins.bytes, lxml.etree.QName, typing.Collection[...], ...]], Any, None] =, *tags: Union[builtins.str, builtins.bytes, lxml.etree.QName, typing.Collection[...], ...], reversed: builtins.bool =) -> typing.Iterator[lxml.etree._Element]"
result = element.iterchildren("my-attr")
reveal_type(result) # N: Revealed type is "typing.Iterator[lxml.etree._Element]"
- case: etree_xmlparser_makeelement
disable_cache: true
main: |
from lxml import etree
parser = etree.XMLParser()
element = parser.makeelement("foobar")
reveal_type(element) # N: Revealed type is "lxml.etree._Element"
- case: etree_htmlparser_makeelement
disable_cache: true
main: |
from lxml import etree
parser = etree.HTMLParser()
element = parser.makeelement("foobar")
reveal_type(element) # N: Revealed type is "lxml.etree._Element"
- case: etree_tostring_encoding_default_or_type
disable_cache: true
parametrized:
- kwd: null
rt: builtins.bytes
- kwd: encoding=str
rt: builtins.str
main: |
from lxml import etree
string = etree.tostring(etree.Element("foo"), {{ kwd }})
reveal_type(string) # N: Revealed type is "{{ rt }}"
- case: etree_tostring_encoding_specific
disable_cache: true
parametrized:
- val: ascii
rt: builtins.bytes
- val: utf8
rt: builtins.bytes
- val: unknown_encoding
rt: Union[builtins.str, builtins.bytes]
- val: unicode
rt: builtins.str
main: |
from lxml import etree
string = etree.tostring(etree.Element("foo"), encoding="{{ val }}")
reveal_type(string) # N: Revealed type is "{{ rt }}"
- case: etree_treebuilder_implements_parsertarget
disable_cache: true
main: |
# this test does no explicit checks; it should pass
# if mypy doesn't raise an "Incompatible types in assignment"
from lxml import etree
target: etree.ParserTarget = etree.TreeBuilder()
- case: etree_HTML_returns_element
disable_cache: true
main: |
from lxml import etree
document = etree.HTML("<doc></doc>", parser=etree.HTMLParser(), base_url="http://example.com/")
reveal_type(document) # N: Revealed type is "lxml.etree._Element"
- case: etree_XML_returns_element
disable_cache: true
main: |
from lxml import etree
document = etree.XML("<doc></doc>", parser=etree.XMLParser(), base_url="http://example.com/")
reveal_type(document) # N: Revealed type is "lxml.etree._Element"
- case: etree_XMLPullParser
disable_cache: true
main: |
from lxml import etree
parser = etree.XMLPullParser()
event = next(parser.read_events())
if event[0] == "start":
reveal_type(event[1]) # N: Revealed type is "lxml.etree._Element"
elif event[0] == "end":
reveal_type(event[1]) # N: Revealed type is "lxml.etree._Element"
elif event[0] == "start-ns":
reveal_type(event[1]) # N: Revealed type is "tuple[Union[builtins.str, builtins.bytes], Union[builtins.str, builtins.bytes]]"
elif event[0] == "end-ns":
reveal_type(event[1]) # N: Revealed type is "None"
elif event[0] == "comment":
reveal_type(event[1]) # N: Revealed type is "lxml.etree._Comment"
elif event[0] == "pi":
reveal_type(event[1]) # N: Revealed type is "lxml.etree._ProcessingInstruction"
- case: etree_HTMLPullParser
disable_cache: true
main: |
from lxml import etree
parser = etree.HTMLPullParser()
event = next(parser.read_events())
if event[0] == "start":
reveal_type(event[1]) # N: Revealed type is "lxml.etree._Element"
elif event[0] == "end":
reveal_type(event[1]) # N: Revealed type is "lxml.etree._Element"
elif event[0] == "start-ns":
reveal_type(event[1]) # N: Revealed type is "tuple[Union[builtins.str, builtins.bytes], Union[builtins.str, builtins.bytes]]"
elif event[0] == "end-ns":
reveal_type(event[1]) # N: Revealed type is "None"
elif event[0] == "comment":
reveal_type(event[1]) # N: Revealed type is "lxml.etree._Comment"
elif event[0] == "pi":
reveal_type(event[1]) # N: Revealed type is "lxml.etree._ProcessingInstruction"