[Zodb-checkins] CVS: Packages/ZConfig/tests - test_schema.py:1.1.2.27

Fred L. Drake, Jr. fred@zope.com
Thu, 19 Dec 2002 11:51:28 -0500


Update of /cvs-repository/Packages/ZConfig/tests
In directory cvs.zope.org:/tmp/cvs-serv28967/tests

Modified Files:
      Tag: zconfig-schema-devel-branch
	test_schema.py 
Log Message:
Straighten out exceptions so schema parsing gets a distinct exception type
that carries location information as usable attributes.


=== Packages/ZConfig/tests/test_schema.py 1.1.2.26 => 1.1.2.27 ===
--- Packages/ZConfig/tests/test_schema.py:1.1.2.26	Thu Dec 19 10:18:30 2002
+++ Packages/ZConfig/tests/test_schema.py	Thu Dec 19 11:51:27 2002
@@ -255,6 +255,18 @@
                                      "  <sect a/>\n"
                                      "</nesting>")
 
+    def test_disallowed_duplicate_attribute(self):
+        self.assertRaises(ZConfig.SchemaError,
+                          self.load_schema_text,
+                          "<schema>"
+                          "  <key name='a'/>"
+                          "  <key name='b' attribute='a'/>"
+                          "</schema>")
+
+    def test_unknown_datatype_name(self):
+        self.assertRaises(ZConfig.SchemaError,
+                          self.load_schema_text, "<schema datatype='foobar'/>")
+
     def test_load_sectiongroup(self):
         schema = self.load_schema_text(
             "<schema>"
@@ -313,6 +325,14 @@
             "</schema>")
         conf = self.load_config_text(schema, "some-key 42\n some-key 43")
         self.assertEqual(conf.keymap, {'some-key': [42, 43]})
+
+    def test_arbitrary_key_bad_schema(self):
+        self.assertRaises(ZConfig.SchemaError,
+                          self.load_schema_text,
+                          "<schema>"
+                          "  <key name='+' attribute='attr1'/>"
+                          "  <key name='+' attribute='attr2'/>"
+                          "</schema>")
 
     # datatype tests