diff options
Diffstat (limited to 'tests/conftest.py')
-rw-r--r-- | tests/conftest.py | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/tests/conftest.py b/tests/conftest.py index 1a9af58..896a2ba 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -19,15 +19,27 @@ def aws(): return w def elements_equal(e1, e2): - if e1.tag != e2.tag: return False - if e1.text != e2.text: return False - if e1.tail.strip() != e2.tail.strip(): return False - if e1.attrib != e2.attrib: return False - if len(e1) != len(e2): return False + """Determine if two XML elements are equal.""" + if e1.tag != e2.tag: + print("tag", e1.tag, e2.tag) + return False + if ("" if e1.text is None else e1.text).strip("\r\n\t ") != ("" if e2.text is None else e2.text).strip("\r\n\t "): + print("text", repr(e1.text), repr(e2.text)) + return False + if ("" if e1.tail is None else e1.tail).strip("\r\n\t ") != ("" if e2.tail is None else e2.tail).strip("\r\n\t "): + print("tail", repr(e1.tail), repr(e2.tail)) + return False + if e1.attrib != e2.attrib: + print("attrib", repr(e1.attrib), repr(e2.attrib)) + return False + if len(e1) != len(e2): + print("len", len(e1), len(e2)) + return False return all(elements_equal(c1, c2) for c1, c2 in zip(e1, e2)) @pytest.fixture def test_xml_eq(): + """Use for testing serialization functions.""" def inner(e: et.Element, s: str): return elements_equal(e, et.fromstring(s)) return inner |