summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/tests')
-rw-r--r--repoze/bfg/tests/test_paster.py15
-rw-r--r--repoze/bfg/tests/test_scripting.py56
2 files changed, 71 insertions, 0 deletions
diff --git a/repoze/bfg/tests/test_paster.py b/repoze/bfg/tests/test_paster.py
index 3339fe498..0119e3313 100644
--- a/repoze/bfg/tests/test_paster.py
+++ b/repoze/bfg/tests/test_paster.py
@@ -28,6 +28,21 @@ class TestBFGShellCommand(unittest.TestCase):
self.failUnless(interact.banner)
self.assertEqual(len(app.threadlocal_manager.popped), 1)
+class TestGetApp(unittest.TestCase):
+ def _callFUT(self, config_file, section_name, loadapp):
+ from repoze.bfg.paster import get_app
+ return get_app(config_file, section_name, loadapp)
+
+ def test_it(self):
+ import os
+ app = DummyApp()
+ loadapp = DummyLoadApp(app)
+ result = self._callFUT('/foo/bar/myapp.ini', 'myapp', loadapp)
+ self.assertEqual(loadapp.config_name, 'config:/foo/bar/myapp.ini')
+ self.assertEqual(loadapp.section_name, 'myapp')
+ self.assertEqual(loadapp.relative_to, os.getcwd())
+ self.assertEqual(result, app)
+
class Dummy:
pass
diff --git a/repoze/bfg/tests/test_scripting.py b/repoze/bfg/tests/test_scripting.py
new file mode 100644
index 000000000..514b02dca
--- /dev/null
+++ b/repoze/bfg/tests/test_scripting.py
@@ -0,0 +1,56 @@
+import unittest
+
+class TestGetRoot(unittest.TestCase):
+ def _callFUT(self, app, environ=None):
+ from repoze.bfg.paster import get_root
+ return get_root(app, environ)
+
+ def test_it_noenviron(self):
+ app = DummyApp()
+ root, closer = self._callFUT(app)
+ self.assertEqual(len(app.threadlocal_manager.pushed), 1)
+ pushed = app.threadlocal_manager.pushed[0]
+ self.assertEqual(pushed['registry'], dummy_registry)
+ self.assertEqual(pushed['request'], None)
+ self.assertEqual(len(app.threadlocal_manager.popped), 0)
+ closer()
+ self.assertEqual(len(app.threadlocal_manager.popped), 1)
+
+ def test_it_withenviron(self):
+ app = DummyApp()
+ environ = {}
+ root, closer = self._callFUT(app, environ)
+ self.assertEqual(len(app.threadlocal_manager.pushed), 1)
+ pushed = app.threadlocal_manager.pushed[0]
+ self.assertEqual(pushed['registry'], dummy_registry)
+ self.assertEqual(pushed['request'], None)
+ self.assertEqual(len(app.threadlocal_manager.popped), 0)
+ closer()
+ self.assertEqual(len(app.threadlocal_manager.popped), 1)
+
+
+class Dummy:
+ pass
+
+dummy_root = Dummy()
+dummy_registry = Dummy()
+
+class DummyApp:
+ def __init__(self):
+ self.registry = dummy_registry
+ self.threadlocal_manager = DummyThreadLocalManager()
+
+ def root_factory(self, environ):
+ return dummy_root
+
+class DummyThreadLocalManager:
+ def __init__(self):
+ self.pushed = []
+ self.popped = []
+
+ def push(self, item):
+ self.pushed.append(item)
+
+ def pop(self):
+ self.popped.append(True)
+