From a349a240a116319a72dde88007aa37b4b3d14e4e Mon Sep 17 00:00:00 2001
From: Tres Seaver <tseaver@agendaless.com>
Date: Mon, 26 Apr 2010 01:16:49 +0200
Subject: [PATCH] Added ``repoze.who.config:make_api_factory_with_config``.

---
 repoze/who/tests/test_config.py |   62 +++++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 0 deletions(-)

diff --git a/repoze/who/tests/test_config.py b/repoze/who/tests/test_config.py
index 023a133..35690ac 100644
--- a/repoze/who/tests/test_config.py
+++ b/repoze/who/tests/test_config.py
@@ -407,6 +407,68 @@
         self.assertEqual(middleware.logger.getEffectiveLevel(), logging.INFO)
         logging.shutdown()
 
+class Test_make_api_with_config(unittest.TestCase):
+    tempdir = None
+
+    def setUp(self):
+        pass
+
+    def tearDown(self):
+        if self.tempdir is not None:
+            import shutil
+            shutil.rmtree(self.tempdir)
+
+    def _getFactory(self):
+        from repoze.who.config import make_api_factory_with_config
+        return make_api_factory_with_config
+
+    def _getTempfile(self, text):
+        import os
+        import tempfile
+        tempdir = self.tempdir = tempfile.mkdtemp()
+        path = os.path.join(tempdir, 'who.ini')
+        config = open(path, 'w')
+        config.write(text)
+        config.flush()
+        config.close()
+        return path
+
+    def test_sample_config_no_logger(self):
+        factory = self._getFactory()
+        path = self._getTempfile(SAMPLE_CONFIG)
+        global_conf = {'here': '/'}
+        api_factory = factory(global_conf, config_file=path)
+        self.assertEqual(len(api_factory.identifiers), 3)
+        self.assertEqual(len(api_factory.authenticators), 1)
+        self.assertEqual(len(api_factory.challengers), 2)
+        self.assertEqual(len(api_factory.mdproviders), 0)
+        self.assertEqual(api_factory.remote_user_key, 'REMOTE_USER')
+        self.failUnless(api_factory.logger is None)
+
+    def test_sample_config_w_remote_user_key(self):
+        factory = self._getFactory()
+        path = self._getTempfile(SAMPLE_CONFIG)
+        global_conf = {'here': '/'}
+        api_factory = factory(global_conf, config_file=path,
+                              remote_user_key = 'X-OTHER-USER')
+        self.assertEqual(len(api_factory.identifiers), 3)
+        self.assertEqual(len(api_factory.authenticators), 1)
+        self.assertEqual(len(api_factory.challengers), 2)
+        self.assertEqual(len(api_factory.mdproviders), 0)
+        self.assertEqual(api_factory.remote_user_key, 'X-OTHER-USER')
+
+    def test_sample_config_w_logger(self):
+        factory = self._getFactory()
+        path = self._getTempfile(SAMPLE_CONFIG)
+        global_conf = {'here': '/'}
+        logger = object()
+        api_factory = factory(global_conf, config_file=path, logger=logger)
+        self.assertEqual(len(api_factory.identifiers), 3)
+        self.assertEqual(len(api_factory.authenticators), 1)
+        self.assertEqual(len(api_factory.challengers), 2)
+        self.assertEqual(len(api_factory.mdproviders), 0)
+        self.failUnless(api_factory.logger is logger)
+
 SAMPLE_CONFIG = """\
 [plugin:form]
 use = repoze.who.plugins.form:make_plugin

--
Gitblit v1.9.3