コード例 #1
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_load_element_max():
    test_xml = '''
        <test:MinMaxElementFixture xmlns:test="http://jaymes.biz/test">
        <test:min>test1</test:min>
        <test:min>test2</test:min>
        <test:min>test3</test:min>
        <test:max>test4</test:max>
        <test:max>test5</test:max>
        </test:MinMaxElementFixture>
        '''
    doc = expatriate.Document()
    doc.parse(test_xml)
    model = Model.load(None, doc.root_element)
    assert isinstance(model, MinMaxElementFixture)

    assert hasattr(model, 'max')
    assert isinstance(model.max, list)
    assert len(model.max) == 2
    assert model.max[0].get_value() == 'test4'
    assert model.max[1].get_value() == 'test5'

    with pytest.raises(MaximumElementException):
        test_xml = '''
            <test:MinMaxElementFixture xmlns:test="http://jaymes.biz/test">
            <test:min>test1</test:min>
            <test:min>test2</test:min>
            <test:min>test3</test:min>
            <test:max>test4</test:max>
            <test:max>test5</test:max>
            <test:max>test6</test:max>
            </test:MinMaxElementFixture>
            '''
        doc = expatriate.Document()
        doc.parse(test_xml)
        model = Model.load(None, doc.root_element)
コード例 #2
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_load_attribute_required():
    test_xml = '<test:RequiredAttributeFixture xmlns:test="http://jaymes.biz/test" required_attribute="test"/>'
    doc = expatriate.Document()
    doc.parse(test_xml)
    model = Model.load(None, doc.root_element)
    assert isinstance(model, RequiredAttributeFixture)
    assert hasattr(model, 'required_attribute')
    assert model.required_attribute == 'test'

    with pytest.raises(RequiredAttributeException):
        test_xml = '<test:RequiredAttributeFixture xmlns:test="http://jaymes.biz/test"/>'
        doc = expatriate.Document()
        doc.parse(test_xml)
        model = Model.load(None, doc.root_element)
コード例 #3
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_is_nil():
    test_xml = '<test:RootFixture xmlns:test="http://jaymes.biz/test" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>'
    doc = expatriate.Document()
    doc.parse(test_xml)
    model = Model.load(None, doc.root_element)
    assert model.get_value() is None
    assert model.is_nil()
コード例 #4
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_load_element_dict_value_class():
    test_xml = '''
        <test:DictElementFixture xmlns:test="http://jaymes.biz/test" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <test:dict_value_class id="test1" tag="blue">text1</test:dict_value_class>
        <test:dict_value_class id="test2" tag="red">text2</test:dict_value_class>
        </test:DictElementFixture>
        '''
    doc = expatriate.Document()
    doc.parse(test_xml)
    model = Model.load(None, doc.root_element)

    assert isinstance(model, DictElementFixture)

    assert hasattr(model, 'dict_value_class')
    assert len(model.dict_value_class) == 2

    assert 'test1' in model.dict_value_class
    assert isinstance(model.dict_value_class['test1'], DictValueElementFixture)
    assert model.dict_value_class['test1'].id == 'test1'
    assert model.dict_value_class['test1'].tag == 'blue'
    assert model.dict_value_class['test1'].get_value() == 'text1'

    assert 'test2' in model.dict_value_class
    assert isinstance(model.dict_value_class['test2'], DictValueElementFixture)
    assert model.dict_value_class['test2'].id == 'test2'
    assert model.dict_value_class['test2'].tag == 'red'
    assert model.dict_value_class['test2'].get_value() == 'text2'
コード例 #5
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_load_element_wildcard_in():
    test_xml = '''
        <test:WildcardElementInFixture xmlns:test2="http://jaymes.biz/test2" xmlns:test="http://jaymes.biz/test">
        <test:wildcard_element>test1</test:wildcard_element>
        <test2:wildcard_element>test2</test2:wildcard_element>
        </test:WildcardElementInFixture>
        '''
    doc = expatriate.Document()
    doc.parse(test_xml)
    model = Model.load(None, doc.root_element)

    assert isinstance(model, WildcardElementInFixture)

    assert hasattr(model, 'test_elements')
    assert isinstance(model.test_elements, list)
    assert len(model.test_elements) == 1

    assert hasattr(model, 'elements')
    assert isinstance(model.elements, list)
    assert len(model.elements) == 1

    assert isinstance(model.test_elements[0], EnclosedFixture)
    assert model.test_elements[0].get_value() == 'test1'

    assert isinstance(model.elements[0], EnclosedFixture2)
    assert model.elements[0].get_value() == 'test2'
コード例 #6
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_in_and_out():
    test_xml = '<test:InitFixture xmlns:test="http://jaymes.biz/test">' + \
        '<test:list id="test1"/>' + \
        '<test:list id="test2"/>' + \
        '<test:list id="test3"/>' + \
        '<test:dict id="test4"/>' + \
        '<test:dict id="test5"/>' + \
        '<test:dict id="test6"/>' + \
        '<test:dict id="test7"/>' + \
        '<test:dict id="test8"/>' + \
        '<test:in_test id="test9"/>' + \
        '<test:dash-test id="test10"/>' + \
        '<test2:wildcard_element xmlns:test2="http://jaymes.biz/test2" id="test11"/>' + \
        '<test:wildcard_element id="test12"/>' + \
        '<test:dict id="test13"/>' + \
        '<test:list id="test14"/>' + \
        '</test:InitFixture>'
    doc = expatriate.Document()
    doc.parse(test_xml)
    model = Model.load(None, doc.root_element)

    out_xml = model.produce().produce()
    print(test_xml)
    print(out_xml)
    assert out_xml == test_xml
コード例 #7
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_load_attribute_value_in_enum():
    test_xml = '<test:RootFixture xmlns:test="http://jaymes.biz/test"><test:EnumValue>bravo</test:EnumValue></test:RootFixture>'
    doc = expatriate.Document()
    doc.parse(test_xml)
    model = Model.load(None, doc.root_element)
    assert isinstance(model, RootFixture)
    assert hasattr(model, 'EnumValue')
    assert model.EnumValue == 'bravo'
コード例 #8
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_load_attribute_no_default():
    test_xml = '<test:AttributeFixture xmlns:test="http://jaymes.biz/test"/>'
    doc = expatriate.Document()
    doc.parse(test_xml)
    model = Model.load(None, doc.root_element)
    assert isinstance(model, AttributeFixture)
    assert hasattr(model, 'in_test')
    assert model.in_test is None
コード例 #9
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_load_attribute_dash():
    test_xml = '<test:AttributeFixture xmlns:test="http://jaymes.biz/test" dash-attribute="test"/>'
    doc = expatriate.Document()
    doc.parse(test_xml)
    model = Model.load(None, doc.root_element)
    assert isinstance(model, AttributeFixture)
    assert hasattr(model, 'dash_attribute')
    assert model.dash_attribute == 'test'
コード例 #10
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_load_attribute_value_matches_pattern():
    test_xml = '<test:RootFixture xmlns:test="http://jaymes.biz/test"><test:PatternValue>Bravo12</test:PatternValue></test:RootFixture>'
    doc = expatriate.Document()
    doc.parse(test_xml)
    model = Model.load(None, doc.root_element)
    assert isinstance(model, RootFixture)
    assert hasattr(model, 'PatternValue')
    assert model.PatternValue == 'Bravo12'
コード例 #11
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_load_root_model():
    test_xml = '<test:RootFixture xmlns:test="http://jaymes.biz/test"/>'
    doc = expatriate.Document()
    doc.parse(test_xml)
    model = Model.load(None, doc.root_element)
    assert isinstance(model, RootFixture)

    with pytest.raises(UnknownNamespaceException):
        test_xml = '<test:RootFixture xmlns:test="http://jaymes.biz/derp"/>'
        doc = expatriate.Document()
        doc.parse(test_xml)
        model = Model.load(None, doc.root_element)

    with pytest.raises(ElementMappingException):
        test_xml = '<test:Derp xmlns:test="http://jaymes.biz/test"/>'
        doc = expatriate.Document()
        doc.parse(test_xml)
        model = Model.load(None, doc.root_element)
コード例 #12
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_load_element_dict_value_type():
    test_xml = '''
        <test:DictElementFixture xmlns:test="http://jaymes.biz/test" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <test:dict_value_type id="test1">test1</test:dict_value_type>
        <test:dict_value_type id="test2">test2</test:dict_value_type>
        </test:DictElementFixture>
        '''
    doc = expatriate.Document()
    doc.parse(test_xml)
    model = Model.load(None, doc.root_element)

    assert isinstance(model, DictElementFixture)

    assert hasattr(model, 'dict_value_type')
    assert len(model.dict_value_type) == 2

    assert 'test1' in model.dict_value_type
    assert model.dict_value_type['test1'] == 'test1'

    assert 'test2' in model.dict_value_type
    assert model.dict_value_type['test2'] == 'test2'
コード例 #13
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_load_element_list_nil():
    test_xml = '''
        <test:ListElementFixture xmlns:test="http://jaymes.biz/test" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <test:list_nil xsi:nil="true"/>
        <test:list_nil>test2</test:list_nil>
        </test:ListElementFixture>
        '''
    doc = expatriate.Document()
    doc.parse(test_xml)
    model = Model.load(None, doc.root_element)

    assert isinstance(model, ListElementFixture)

    assert hasattr(model, 'list_nil')
    assert isinstance(model.list_nil, list)
    assert len(model.list_nil) == 2

    assert model.list_nil[0] is None

    assert isinstance(model.list_nil[1], EnclosedFixture)
    assert model.list_nil[1].get_value() == 'test2'
コード例 #14
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_load_element_list_type():
    test_xml = '''
        <test:ListElementFixture xmlns:test="http://jaymes.biz/test">
        <test:list_type>1.1</test:list_type>
        <test:list_type>1.2</test:list_type>
        </test:ListElementFixture>
        '''
    doc = expatriate.Document()
    doc.parse(test_xml)
    model = Model.load(None, doc.root_element)

    assert isinstance(model, ListElementFixture)

    assert hasattr(model, 'list_type')
    assert isinstance(model.list_type, list)
    assert len(model.list_type) == 2

    assert isinstance(model.list_type[0], float)
    assert model.list_type[0] == 1.1

    assert isinstance(model.list_type[1], float)
    assert model.list_type[1] == 1.2
コード例 #15
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_load_element_list_class():
    test_xml = '''
        <test:ListElementFixture xmlns:test="http://jaymes.biz/test">
        <test:list_class>test1</test:list_class>
        <test:list_class>test2</test:list_class>
        </test:ListElementFixture>
        '''
    doc = expatriate.Document()
    doc.parse(test_xml)
    model = Model.load(None, doc.root_element)

    assert isinstance(model, ListElementFixture)

    assert hasattr(model, 'list_class')
    assert isinstance(model.list_class, list)
    assert len(model.list_class) == 2

    assert isinstance(model.list_class[0], EnclosedFixture)
    assert model.list_class[0].get_value() == 'test1'

    assert isinstance(model.list_class[1], EnclosedFixture)
    assert model.list_class[1].get_value() == 'test2'
コード例 #16
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_load_attribute_value_not_matches_pattern():
    with pytest.raises(PatternException):
        test_xml = '<test:RootFixture xmlns:test="http://jaymes.biz/test"><test:PatternValue>delta</test:PatternValue></test:RootFixture>'
        doc = expatriate.Document()
        doc.parse(test_xml)
        model = Model.load(None, doc.root_element)
コード例 #17
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_is_not_nil():
    test_xml = '<test:RootFixture xmlns:test="http://jaymes.biz/test"/>'
    doc = expatriate.Document()
    doc.parse(test_xml)
    model = Model.load(None, doc.root_element)
    assert not model.is_nil()
コード例 #18
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_class_for_element():
    test_xml = '<test:RootFixture xmlns:test="http://jaymes.biz/test"/>'
    doc = expatriate.Document()
    doc.parse(test_xml)
    assert Model.class_for_element(doc.root_element) == RootFixture
コード例 #19
0
ファイル: test_Model.py プロジェクト: ra2003/expatriate
def test_get_value():
    test_xml = '<test:RootFixture xmlns:test="http://jaymes.biz/test">test</test:RootFixture>'
    doc = expatriate.Document()
    doc.parse(test_xml)
    model = Model.load(None, doc.root_element)
    assert model.get_value() == 'test'