Source code for pook.matchers.xml

import json
import xmltodict
from .base import BaseMatcher


[docs] class XMLMatcher(BaseMatcher): """ XMLMatcher implements a XML body matcher supporting both strict structure comparison and regular expression. """ def __init__(self, data): BaseMatcher.__init__(self, data) if isinstance(data, str): self.expectation = xmltodict.parse(data)
[docs] def compare(self, data): x = json.dumps(xmltodict.parse(data), sort_keys=True) y = json.dumps(self.expectation, sort_keys=True) return x == y
[docs] @BaseMatcher.matcher def match(self, req): data = req.body if not isinstance(data, str): return False return self.compare(data)