Example #1
0
def test_nested():
    Top = xmlfied('top', foo=Nested())
    Down = xmlfied('down', bar=Element(), baz=Attribute())

    d = Down(bar='123', baz='456')
    t = Top(foo=d)

    assert_that(
        etree.tostring(t.toxml()),
        string_contains_in_order('<top>', '<down', 'baz=', '"456"', '<bar>',
                                 '123', '</bar>', '</down>', '</top>'))
Example #2
0
def test_element_name():
    foo = xmlfied('foo', bar=Element(name='foo-bar'))

    assert_that(
        etree.tostring(foo(bar='123').toxml()),
        string_contains_in_order('<foo>', '<foo-bar>', '123', '</foo-bar>',
                                 '</foo>'))
Example #3
0
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>'), ))
Example #4
0
def test_attribute():
    AttrTest = xmlfied('attr_test', foo=Attribute())

    a = AttrTest(foo='bar')

    assert_that(etree.tostring(a.toxml()),
                string_contains_in_order('<attr_test', 'foo=', '"bar"', ">"))
Example #5
0
def test_bad_symbols_replacement():
    foo = xmlfied('foo', bar=Element(name='bar'))

    assert_that(
        etree.tostring(foo(bar=u'abОЛОЛОcd'.encode('cp1251')).toxml()),
        string_contains_in_order('<bar>', 'ab', '&#65533;' * 4, 'cd',
                                 '</bar>'))
Example #6
0
def test_optional():
    foo = xmlfied('foo', bar=Element().if_(lambda x: '123' not in x))

    assert_that(etree.tostring(foo(bar=' 123 ').toxml()),
                string_contains_in_order('<foo/>'))
    assert_that(etree.tostring(foo(bar=' 12 3').toxml()),
                string_contains_in_order('<foo>', '<bar>'))
Example #7
0
def test_nested():
    Top = xmlfied('top', foo=Nested())
    Down = xmlfied('down', bar=Element(), baz=Attribute())

    d = Down(bar='123', baz='456')
    t = Top(foo=d)

    assert_that(etree.tostring(t.toxml()), string_contains_in_order(
                                                           '<top>',
                                                           '<down',
                                                           'baz=', '"456"',
                                                           '<bar>',
                                                           '123',
                                                           '</bar>',
                                                           '</down>',
                                                           '</top>'
                                                           ))
Example #8
0
def test_element():
    ElementTest = xmlfied('element_test', ab=Element())

    a = ElementTest(ab='foo')

    assert_that(etree.tostring(a.toxml()), string_contains_in_order('<element_test>',
                                                                    '<ab>foo</ab>',
                                                                    '</element_test>'))
Example #9
0
def test_element():
    ElementTest = xmlfied('element_test', ab=Element())

    a = ElementTest(ab='foo')

    assert_that(
        etree.tostring(a.toxml()),
        string_contains_in_order('<element_test>', '<ab>foo</ab>',
                                 '</element_test>'))
Example #10
0
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>'),
                                                    ))
Example #11
0
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>'),
                                                    ))
Example #12
0
def test_elements_order():
    Foo = xmlfied('foo',
                  fields=[('bar', Element()), ('baz', Element()),
                          ('gaz', Element()), ('daz', Element())])

    foo = Foo(bar=3, baz=4, gaz=5, daz=6)

    assert_that(
        etree.tostring(foo.toxml()),
        string_contains_in_order('<bar>', '3', '</bar>', '<baz>', '4',
                                 '</baz>', '<gaz>', '5', '</gaz>', '<daz>',
                                 '6', '</daz>'))
Example #13
0
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>'),
        ))
Example #14
0
def test_elements_order():
    Foo = xmlfied('foo', fields=[
                                  ('bar', Element()),
                                  ('baz', Element()),
                                  ('gaz', Element()),
                                  ('daz', Element())])

    foo = Foo(bar=3, baz=4, gaz=5, daz=6)

    assert_that(etree.tostring(foo.toxml()), string_contains_in_order(
                                                                      '<bar>', '3', '</bar>',
                                                                      '<baz>', '4', '</baz>',
                                                                      '<gaz>', '5', '</gaz>',
                                                                      '<daz>', '6', '</daz>'
                                                                      ))
Example #15
0
def test_illegal_xml_symbols():
    foo = xmlfied('foo', bar=Element(name='bar'))

    foo(bar=''.join(map(chr, range(128)))).toxml()
Example #16
0
'''
This holds allure report xml structures

Created on Oct 23, 2013

@author: pupssman
'''

from allure.utils 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()),
                   status=Attribute(),
Example #17
0
def test_optional():
    foo = xmlfied('foo', bar=Element().if_(lambda x: '123' not in x))

    assert_that(etree.tostring(foo(bar=' 123 ').toxml()), string_contains_in_order('<foo/>'))
    assert_that(etree.tostring(foo(bar=' 12 3').toxml()), string_contains_in_order('<foo>', '<bar>'))
Example #18
0
def test_element_name():
    foo = xmlfied('foo', bar=Element(name='foo-bar'))

    assert_that(etree.tostring(foo(bar='123').toxml()), string_contains_in_order('<foo>', '<foo-bar>', '123', '</foo-bar>', '</foo>'))
Example #19
0
def test_attribute():
    AttrTest = xmlfied('attr_test', foo=Attribute())

    a = AttrTest(foo='bar')

    assert_that(etree.tostring(a.toxml()), string_contains_in_order('<attr_test', 'foo=', '"bar"', ">"))
Example #20
0
def test_bad_symbols_replacement():
    foo = xmlfied('foo', bar=Element(name='bar'))

    assert_that(etree.tostring(foo(bar=u'abОЛОЛОcd'.encode('cp1251')).toxml()), string_contains_in_order('<bar>', 'ab', '&#65533;' * 4, 'cd', '</bar>'))
Example #21
0
def test_illegal_xml_symbols():
    foo = xmlfied('foo', bar=Element(name='bar'))

    foo(bar=''.join(map(chr, range(128)))).toxml()