summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorPeter A. Bigot <pab@peoplepowerco.com>2010-03-18 14:06:55 -0700
committerPeter A. Bigot <pab@peoplepowerco.com>2010-03-18 14:06:55 -0700
commit224307e5ed4e66d2597950e0cb70e8590255ebed (patch)
tree53b3a14f5ebfd5c78fbbc1088cb1ed95a50c5229 /tests
parent3f2b8c75c1204d6dde0e36b724622576df8eecf1 (diff)
Add full unit test
Diffstat (limited to 'tests')
-rw-r--r--tests/trac/trac-0080/check.py65
-rwxr-xr-x[-rw-r--r--]tests/trac/trac-0080/test.sh1
2 files changed, 66 insertions, 0 deletions
diff --git a/tests/trac/trac-0080/check.py b/tests/trac/trac-0080/check.py
new file mode 100644
index 0000000..54dfa55
--- /dev/null
+++ b/tests/trac/trac-0080/check.py
@@ -0,0 +1,65 @@
+import mr
+import unittest
+import pyxb
+import pyxb.binding.datatypes as xsd
+
+class TestTrac0080 (unittest.TestCase):
+
+ _NotANormalizedString = "\nmulti\nline\ttabbed\n"
+ _NotAToken = ' leading spaces '
+ _NotAnNCName = 'internal spaces'
+ _NCName = 'simple'
+
+ def assignAttribute_ (self, instance, value):
+ instance.anAttribute = value
+
+ def testType4 (self): # base
+ v = xsd.normalizedString(self._NotANormalizedString)
+ i4 = mr.Type4()
+ au = i4._AttributeMap.get('anAttribute')
+ self.assertEqual(au.dataType(), xsd.normalizedString)
+ self.assertFalse(au.required())
+ # BTW: If you wonder why this works, it's because the
+ # whiteSpace facet on xsd:normalizedString is replace.
+ self.assignAttribute_(i4, self._NotANormalizedString)
+ self.assertEqual(i4.anAttribute, ' multi line tabbed ')
+
+ def testType3 (self): # restrict type
+ i3 = mr.Type3()
+ au = i3._AttributeMap.get('anAttribute')
+ self.assertEqual(au.dataType(), xsd.token)
+ self.assertNotEqual(au, mr.Type4._AttributeMap.get(au.name()))
+ self.assertFalse(au.required())
+ #self.assertRaises(pyxb.BadTypeValueError, self.assignAttribute_, i3, self._NotAToken)
+ self.assignAttribute_(i3, self._NotAnNCName)
+ self.assertEqual(self._NotAnNCName, i3.anAttribute)
+
+ def testType2 (self): # extend isSet
+ i2 = mr.Type2()
+ au = i2._AttributeMap.get('anAttribute')
+ self.assertEqual(au.dataType(), xsd.token)
+ self.assertEqual(au, mr.Type3._AttributeMap.get(au.name()))
+ self.assertFalse(au.required())
+
+ def testType1 (self): # restrict type
+ i1 = mr.Type1()
+ au = i1._AttributeMap.get('anAttribute')
+ self.assertEqual(au.dataType(), xsd.NCName)
+ self.assertFalse(au.required())
+ # The whiteSpace facet on xsd:token is collapse, which does
+ # not remove the interior space.
+ self.assertRaises(pyxb.BadTypeValueError, self.assignAttribute_, i1, self._NotAToken)
+ self.assertRaises(pyxb.BadTypeValueError, self.assignAttribute_, i1, self._NotAnNCName)
+ self.assignAttribute_(i1, self._NCName)
+ self.assertEqual(self._NCName, i1.anAttribute)
+
+ def testRoot (self): # restrict required
+ r = mr.root()
+ rt = type(r)
+ au = rt._AttributeMap.get('anAttribute')
+ self.assertEqual(au.dataType(), xsd.NCName)
+ self.assertTrue(au.required())
+ self.assertRaises(pyxb.MissingAttributeError, r.validateBinding)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/tests/trac/trac-0080/test.sh b/tests/trac/trac-0080/test.sh
index 67f6ea4..b40849b 100644..100755
--- a/tests/trac/trac-0080/test.sh
+++ b/tests/trac/trac-0080/test.sh
@@ -1 +1,2 @@
pyxbgen -u multipleRestriction.xsd -m mr
+python check.py