Tres Seaver
2009-05-20 1810b2d7fbefb52937bfc48ecfee8e1ca3fcede7
Fix test breakage on Windows.

See http://bugs.repoze.org/issue79 .

3 files modified
76 ■■■■■ changed files
CHANGES.txt 2 ●●●●● patch | view | raw | blame | history
repoze/who/plugins/tests/test_authtkt.py 23 ●●●● patch | view | raw | blame | history
repoze/who/tests/test_config.py 51 ●●●●● patch | view | raw | blame | history
CHANGES.txt
@@ -5,6 +5,8 @@
After 1.0.13
============
- Fix test breakage on Windows.  See http://bugs.repoze.org/issue79 .
- Documented issue with using ``include_ip`` setting in the ``auth_tkt``
  plugin.  See http://bugs.repoze.org/issue81 .
repoze/who/plugins/tests/test_authtkt.py
@@ -1,6 +1,15 @@
import unittest
class TestAuthTktCookiePlugin(unittest.TestCase):
    tempdir = None
    def setUp(self):
        pass
    def tearDown(self):
        if self.tempdir is not None:
            import shutil
            shutil.rmtree(self.tempdir)
    def _getTargetClass(self):
        from repoze.who.plugins.auth_tkt import AuthTktCookiePlugin
@@ -280,11 +289,15 @@
        self.assertEqual(plugin.secure, False)
    def test_factory_w_secretfile(self):
        from tempfile import NamedTemporaryFile
        import os
        from tempfile import mkdtemp
        from repoze.who.plugins.auth_tkt import make_plugin
        ntf = NamedTemporaryFile()
        ntf.write('s33kr1t\n')
        ntf.flush()
        plugin = make_plugin(secretfile=ntf.name)
        tempdir = self.tempdir = mkdtemp()
        path = os.path.join(tempdir, 'who.secret')
        secret = open(path, 'w')
        secret.write('s33kr1t\n')
        secret.flush()
        secret.close()
        plugin = make_plugin(secretfile=path)
        self.assertEqual(plugin.secret, 's33kr1t')
repoze/who/tests/test_config.py
@@ -326,63 +326,70 @@
"""
class TestConfigMiddleware(unittest.TestCase):
    tempfile = None
    tempdir = None
    def setUp(self):
        pass
    def tearDown(self):
        if self.tempfile is not None:
            self.tempfile.close()
        if self.tempdir is not None:
            import shutil
            shutil.rmtree(self.tempdir)
    def _getFactory(self):
        from repoze.who.config import make_middleware_with_config
        return make_middleware_with_config
    def _getTempfile(self, text):
        import os
        import tempfile
        tf = self.tempfile = tempfile.NamedTemporaryFile()
        tf.write(text)
        tf.flush()
        return tf
        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(self):
        app = DummyApp()
        factory = self._getFactory()
        tempfile = self._getTempfile(SAMPLE_CONFIG)
        global_conf = {'here': '/'}
        middleware = factory(app, global_conf, config_file=tempfile.name,
                             log_file='STDOUT', log_level='debug')
        import logging
        from repoze.who.interfaces import IIdentifier
        from repoze.who.interfaces import IAuthenticator
        from repoze.who.interfaces import IChallenger
        app = DummyApp()
        factory = self._getFactory()
        path = self._getTempfile(SAMPLE_CONFIG)
        global_conf = {'here': '/'}
        middleware = factory(app, global_conf, config_file=path,
                             log_file='STDOUT', log_level='debug')
        self.assertEqual(len(middleware.registry[IIdentifier]), 3)
        self.assertEqual(len(middleware.registry[IAuthenticator]), 1)
        self.assertEqual(len(middleware.registry[IChallenger]), 2)
        self.failUnless(middleware.logger, middleware.logger)
        import logging
        self.assertEqual(middleware.logger.getEffectiveLevel(), logging.DEBUG)
    def test_sample_config_no_log_level(self):
        import logging
        app = DummyApp()
        factory = self._getFactory()
        tempfile = self._getTempfile(SAMPLE_CONFIG)
        path = self._getTempfile(SAMPLE_CONFIG)
        global_conf = {'here': '/'}
        middleware = factory(app, global_conf, config_file=tempfile.name,
        middleware = factory(app, global_conf, config_file=path,
                             log_file='STDOUT')
        import logging
        self.assertEqual(middleware.logger.getEffectiveLevel(), logging.INFO)
    def test_sample_config_w_log_file(self):
        import logging
        import os
        app = DummyApp()
        factory = self._getFactory()
        tempfile = self._getTempfile(SAMPLE_CONFIG)
        logfile = self._getTempfile('')
        path = self._getTempfile(SAMPLE_CONFIG)
        logfile = os.path.join(self.tempdir, 'who.log')
        global_conf = {'here': '/'}
        middleware = factory(app, global_conf, config_file=tempfile.name,
                             log_file=logfile.name)
        import logging
        middleware = factory(app, global_conf, config_file=path,
                             log_file=logfile)
        self.assertEqual(middleware.logger.getEffectiveLevel(), logging.INFO)
        logging.shutdown()
SAMPLE_CONFIG = """\
[plugin:form]