From c8cab3395432983c2165dce196ad5204e420a900 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Sun, 25 Jan 2009 05:11:21 +0000 Subject: Optimize flatten a bit. --- repoze/bfg/tests/test_security.py | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'repoze/bfg/tests/test_security.py') diff --git a/repoze/bfg/tests/test_security.py b/repoze/bfg/tests/test_security.py index e9f35f57f..4209f8d3d 100644 --- a/repoze/bfg/tests/test_security.py +++ b/repoze/bfg/tests/test_security.py @@ -603,7 +603,36 @@ class TestACLDenied(unittest.TestCase): self.assertEqual(str(denied), msg) self.failUnless('" % msg in repr(denied)) - + +class TestFlatten(unittest.TestCase): + def _callFUT(self, item): + from repoze.bfg.security import flatten + return flatten(item) + + def test_str(self): + result = self._callFUT('a') + self.assertEqual(result, ['a']) + + def test_unicode(self): + result = self._callFUT(u'a') + self.assertEqual(result, [u'a']) + + def test_flat_sequence(self): + result = self._callFUT([1, 2, 3]) + self.assertEqual(result, [1, 2, 3]) + + def test_singly_nested_sequence(self): + result = self._callFUT([1, [2, 3]]) + self.assertEqual(result, [1, 2, 3]) + + def test_doubly_nested_sequence(self): + result = self._callFUT([1, [2, [3]]]) + self.assertEqual(result, [1, 2, 3]) + + def test_mix_str_unicode_sequence(self): + result = self._callFUT([1, [2, [3]], u'a', ('b', set(['c', 'd']))]) + self.assertEqual(result, [1, 2, 3, u'a', 'b', 'c', 'd']) + class DummyContext: pass -- cgit v1.2.3