summaryrefslogtreecommitdiffstats
path: root/sandbox/sebastien/cpp/apr-2/modules/wsgi/xml-test.py
blob: f60322bdc1b7ef54f246a764b680f2eeef7624ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/python
#  Licensed to the Apache Software Foundation (ASF) under one
#  or more contributor license agreements.  See the NOTICE file
#  distributed with this work for additional information
#  regarding copyright ownership.  The ASF licenses this file
#  to you under the Apache License, Version 2.0 (the
#  "License"); you may not use this file except in compliance
#  with the License.  You may obtain a copy of the License at
#  
#    http://www.apache.org/licenses/LICENSE-2.0
#    
#  Unless required by applicable law or agreed to in writing,
#  software distributed under the License is distributed on an
#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#  KIND, either express or implied.  See the License for the
#  specific language governing permissions and limitations
#  under the License.

# Test XML handling functions

import unittest
from elemutil import *
from xmlutil import *

customerXML = \
    "<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n" \
    "<customer>" \
    "<name>jdoe</name>" \
    "<address><city>san francisco</city><state>ca</state></address>" \
    "<account><id>1234</id><balance>1000</balance></account>" \
    "<account><id>6789</id><balance>2000</balance></account>" \
    "<account><id>4567</id><balance>3000</balance></account>" \
    "</customer>\n"

def testElements():
    ad = (("'city", "san francisco"), ("'state", "ca"))
    ac1 = (("'id", "1234"), ("'balance", 1000))
    ac2 = (("'id", "6789"), ("'balance", 2000))
    ac3 = (("'id", "4567"), ("'balance", 3000))
    c = (("'customer", ("'name", "jdoe"), cons("'address", ad), ("'account", (ac1, ac2, ac3))),)
    e = valuesToElements(c)
    v = elementsToValues(e)
    assert v == c
    s = writeXML(e, True)
    assert car(s) == customerXML

    c2 = (("'customer", ("'name", "jdoe"), cons("'address", ad), cons("'account", ac1), cons("'account", ac2), cons("'account", ac3)),)
    e2 = valuesToElements(c2);
    v2 = elementsToValues(e2);
    s2 = writeXML(e2, True)
    assert car(s2) == customerXML

    c3 = readXML((customerXML,))
    v3 = elementsToValues(c3)
    e3 = valuesToElements(v3)
    s3 = writeXML(e3, True)
    assert car(s3) == customerXML
    return True

def testValues():
    l = (("'ns1:echoString", ("'@xmlns:ns1", "http://ws.apache.org/axis2/services/echo"), ("'text", "Hello World!")),)
    e = valuesToElements(l)
    lx = writeXML(e, True)
    x = readXML(lx)
    v = elementsToValues(x)
    assert v == l
    return True

if __name__ == "__main__":
    print "Testing..."
    testElements()
    testValues()
    print "OK"