summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWayne Witzel III <wwitzel3@gmail.com>2012-08-03 12:07:10 -0700
committerWayne Witzel III <wwitzel3@gmail.com>2012-08-03 12:07:10 -0700
commit0d8ff5b39aefaf2a9b3fdd79894d855e59ed9a2e (patch)
tree88dc7997fea2f19a30ddcd4bf8c5d2bd6131edf0
parent92b456610438bdd94b7906683f8b2049fe5765bd (diff)
downloadpyramid-0d8ff5b39aefaf2a9b3fdd79894d855e59ed9a2e.tar.gz
pyramid-0d8ff5b39aefaf2a9b3fdd79894d855e59ed9a2e.tar.bz2
pyramid-0d8ff5b39aefaf2a9b3fdd79894d855e59ed9a2e.zip
Tests for fixing issue #621
-rw-r--r--pyramid/tests/test_config/__init__.py8
-rw-r--r--pyramid/tests/test_config/test_init.py26
-rw-r--r--pyramid/tests/test_config/test_init.py:TestConfigurator_add_directive0
3 files changed, 34 insertions, 0 deletions
diff --git a/pyramid/tests/test_config/__init__.py b/pyramid/tests/test_config/__init__.py
index 5b40a8c09..81d9f4965 100644
--- a/pyramid/tests/test_config/__init__.py
+++ b/pyramid/tests/test_config/__init__.py
@@ -43,3 +43,11 @@ def dummy_extend(config, discrim):
def dummy_extend2(config, discrim):
config.action(discrim, None, config.registry)
+from functools import partial
+dummy_partial = partial(dummy_extend, discrim='partial')
+
+class DummyCallable(object):
+ def __call__(self, config, discrim):
+ config.action(discrim, None, config.package)
+dummy_callable = DummyCallable()
+
diff --git a/pyramid/tests/test_config/test_init.py b/pyramid/tests/test_config/test_init.py
index 37c3de275..7a483355c 100644
--- a/pyramid/tests/test_config/test_init.py
+++ b/pyramid/tests/test_config/test_init.py
@@ -1414,6 +1414,32 @@ class TestConfigurator_add_directive(unittest.TestCase):
self.assertEqual(action['callable'], None)
self.assertEqual(action['args'], test_config)
+ def test_add_directive_with_partial(self):
+ from pyramid.tests import test_config
+ config = self.config
+ config.add_directive(
+ 'dummy_partial', 'pyramid.tests.test_config.dummy_partial')
+ self.assertTrue(hasattr(config, 'dummy_partial'))
+ config.dummy_partial()
+ after = config.action_state
+ action = after.actions[-1]
+ self.assertEqual(action['discriminator'], 'partial')
+ self.assertEqual(action['callable'], None)
+ self.assertEqual(action['args'], test_config)
+
+ def test_add_directive_with_custom_callable(self):
+ from pyramid.tests import test_config
+ config = self.config
+ config.add_directive(
+ 'dummy_callable', 'pyramid.tests.test_config.dummy_callable')
+ self.assertTrue(hasattr(config, 'dummy_callable'))
+ config.dummy_callable('discrim')
+ after = config.action_state
+ action = after.actions[-1]
+ self.assertEqual(action['discriminator'], 'discrim')
+ self.assertEqual(action['callable'], None)
+ self.assertEqual(action['args'], test_config)
+
def test_extend_with_python_callable(self):
from pyramid.tests import test_config
config = self.config
diff --git a/pyramid/tests/test_config/test_init.py:TestConfigurator_add_directive b/pyramid/tests/test_config/test_init.py:TestConfigurator_add_directive
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/pyramid/tests/test_config/test_init.py:TestConfigurator_add_directive