diff --git a/tests/keywords_vocab.zcml b/tests/keywords_vocab.zcml new file mode 100644 index 0000000..6900725 --- /dev/null +++ b/tests/keywords_vocab.zcml @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/tests/simple_vocab.zcml b/tests/simple_vocab.zcml new file mode 100644 index 0000000..45db253 --- /dev/null +++ b/tests/simple_vocab.zcml @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/tests/test_directives.py b/tests/test_directives.py new file mode 100644 index 0000000..053268c --- /dev/null +++ b/tests/test_directives.py @@ -0,0 +1,75 @@ +############################################################################## +# +# Copyright (c) 2001, 2002 Zope Corporation and Contributors. +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# +############################################################################## +"""Testing vocabulary directive. + +$Id$ +""" +# BBB 2006/02/24, to be removed after 12 months + +import unittest +import warnings + +from zope.app.testing.placelesssetup import PlacelessSetup +from zope.configuration import xmlconfig +from zope.app.schema.vocabulary import ZopeVocabularyRegistry + +import zope.app.schema + + +class MyFactory(object): + def __init__(self, context, **kw): + self.ob = context + self.kw = kw + + +class DirectivesTest(PlacelessSetup, unittest.TestCase): + + extra_keywords = {"filter": "my-filter", + "another": "keyword"} + + def setUp(self): + super(DirectivesTest, self).setUp() + def ignorewarning(message, category, filename, lineno, file=None): + pass + warnings.showwarning = ignorewarning + + def tearDown(self): + super(DirectivesTest, self).tearDown() + warnings.resetwarnings() + + def check_vocabulary_get(self, kw={}): + context = object() + registry = ZopeVocabularyRegistry() + vocab = registry.get(context, "my-vocab") + self.assert_(vocab.ob is context) + self.assertEqual(vocab.kw, kw) + + def test_simple_zcml(self): + self.context = xmlconfig.file("tests/simple_vocab.zcml", + zope.app.schema) + self.check_vocabulary_get() + + def test_passing_keywords_from_zcml(self): + self.context = xmlconfig.file("tests/keywords_vocab.zcml", + zope.app.schema) + self.check_vocabulary_get(self.extra_keywords) + + +def test_suite(): + return unittest.TestSuite(( + unittest.makeSuite(DirectivesTest), + )) + +if __name__ == '__main__': + unittest.main()