diff options
author | Peter A. Bigot <pab@peoplepowerco.com> | 2010-03-18 14:06:55 -0700 |
---|---|---|
committer | Peter A. Bigot <pab@peoplepowerco.com> | 2010-03-18 14:06:55 -0700 |
commit | 224307e5ed4e66d2597950e0cb70e8590255ebed (patch) | |
tree | 53b3a14f5ebfd5c78fbbc1088cb1ed95a50c5229 /tests | |
parent | 3f2b8c75c1204d6dde0e36b724622576df8eecf1 (diff) |
Add full unit test
Diffstat (limited to 'tests')
-rw-r--r-- | tests/trac/trac-0080/check.py | 65 | ||||
-rwxr-xr-x[-rw-r--r--] | tests/trac/trac-0080/test.sh | 1 |
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 |