[Zodb-checkins] CVS: Packages/ZConfig/tests - test_loader.py:1.1.2.6
Fred L. Drake, Jr.
fred@zope.com
Fri, 3 Jan 2003 13:07:14 -0500
Update of /cvs-repository/Packages/ZConfig/tests
In directory cvs.zope.org:/tmp/cvs-serv20590/tests
Modified Files:
Tag: zconfig-schema-devel-branch
test_loader.py
Log Message:
Start support for configuration packages. This will be needed to allow
schema extensions to be installed by third-party packages (such as
DirectoryStorage).
The meat of it is not there, but some of the framework and checks are in,
with the relevant tests added.
=== Packages/ZConfig/tests/test_loader.py 1.1.2.5 => 1.1.2.6 ===
--- Packages/ZConfig/tests/test_loader.py:1.1.2.5 Thu Jan 2 10:42:55 2003
+++ Packages/ZConfig/tests/test_loader.py Fri Jan 3 13:07:10 2003
@@ -13,10 +13,11 @@
##############################################################################
"""Tests of ZConfig.loader classes and helper functions."""
-import StringIO
import unittest
import urlparse
+from StringIO import StringIO
+
import ZConfig
import ZConfig.loader
@@ -46,17 +47,27 @@
self.assert_(type_a is schema.gettype("type-a"))
self.assert_(type_b is schema.gettype("type-b"))
- def test_simple_import(self):
+ def test_simple_import_with_cache(self):
loader = ZConfig.loader.SchemaLoader()
url1 = urlparse.urljoin(CONFIG_BASE, "library.xml")
schema1 = loader.loadURL(url1)
- sio = StringIO.StringIO("<schema>"
- " <import src='library.xml'/>"
- " <section type='type-a' name='section'/>"
- "</schema>")
+ sio = StringIO("<schema>"
+ " <import src='library.xml'/>"
+ " <section type='type-a' name='section'/>"
+ "</schema>")
url2 = urlparse.urljoin(CONFIG_BASE, "stringio")
schema2 = loader.loadFile(sio, url2)
self.assert_(schema1.gettype("type-a") is schema2.gettype("type-a"))
+
+ def test_import_errors(self):
+ # must specify exactly one of package or src
+ self.assertRaises(ZConfig.SchemaError, ZConfig.loadSchemaFile,
+ StringIO("<schema><import/></schema>"))
+ self.assertRaises(ZConfig.SchemaError, ZConfig.loadSchemaFile,
+ StringIO("<schema>"
+ " <import src='library.xml'"
+ " package='ZConfig'/>"
+ "</schema>"))
def test_zconfig_resource(self):
loader = ZConfig.loader.SchemaLoader()