class Environment( xmlfied('environment', namespace=COMMON_NAMESPACE, id=Element(), name=Element(), parameters=Many(Nested()))): pass
def test_many_elements(): Box = xmlfied('box', foos=Many(Element(name='foo'))) box = Box(foos=['a', 'b', 'c']) assert_that( etree.tostring(box.toxml()), all_of( string_contains_in_order('<box>', '<foos>', '<foo>', 'a', '</foo>', '</foos>', '</box>'), string_contains_in_order('<box>', '<foos>', '<foo>', 'b', '</foo>', '</foos>', '</box>'), string_contains_in_order('<box>', '<foos>', '<foo>', 'c', '</foo>', '</foos>', '</box>')))
def test_many_nested(): Item = xmlfied('item', value=Element()) Box = xmlfied('box', items=Many(Nested())) box = Box(items=[]) box.items.append(Item('a')) box.items.append(Item('a')) box.items.append(Item('a')) assert_that( etree.tostring(box.toxml()), all_of( string_contains_in_order('<box>', '<items>', '<item>', 'a', '</item>', '<item>', 'a', '</item>', '<item>', 'a', '</item>', '</items>', '</box>'), ))
from allure.rules import xmlfied, Attribute, Element, Many, Nested from allure.constants import ALLURE_NAMESPACE Attach = xmlfied('attachment', source=Attribute(), title=Attribute(), type=Attribute()) Failure = xmlfied('failure', message=Element(), trace=Element('stack-trace')) TestCase = xmlfied('test-case', name=Element(), title=Element().if_(lambda x: x), description=Element().if_(lambda x: x), failure=Nested().if_(lambda x: x), steps=Many(Nested()), attachments=Many(Nested()), labels=Many(Nested()), status=Attribute(), start=Attribute(), stop=Attribute(), severity=Attribute()) TestSuite = xmlfied('test-suite', namespace=ALLURE_NAMESPACE, name=Element(), title=Element().if_(lambda x: x), description=Element().if_(lambda x: x), tests=Many(Nested(), name='test-cases'), labels=Many(Nested()), start=Attribute(),
namespace=ALLURE_NAMESPACE, name=Element(), title=Element().if_(lambda x: x), description=Element().if_(lambda x: x), tests=WrappedMany(Nested(), name='test-cases'), labels=WrappedMany(Nested()), start=Attribute(), stop=Attribute()) TestStep = xmlfied('step', name=Element(), title=Element().if_(lambda x: x), attachments=WrappedMany(Nested()), steps=WrappedMany(Nested()), start=Attribute(), stop=Attribute(), status=Attribute()) TestLabel = xmlfied('label', name=Attribute(), value=Attribute()) EnvParameter = xmlfied('parameter', name=Element(), key=Element(), value=Element()) Environment = xmlfied('environment', namespace=COMMON_NAMESPACE, id=Element(), name=Element(), parameters=Many(Nested()))