From a0ee64988439a4c80c27c4843841936c4bba5ab5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A1ssio=20Botaro?= Date: Mon, 4 May 2015 12:49:14 -0300 Subject: [PATCH] Update tests - new tests to verify old behaviour - test otherwise without cast and defaut - verify if behave like a list - more test with call function --- gluon/tests/test_storage.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/gluon/tests/test_storage.py b/gluon/tests/test_storage.py index e518e4d2..810b5b63 100644 --- a/gluon/tests/test_storage.py +++ b/gluon/tests/test_storage.py @@ -120,17 +120,14 @@ class TestStorageList(unittest.TestCase): class TestList(unittest.TestCase): + """ Tests Storage.List (fast-check for request.args()) """ def test_listcall(self): a = List((1, 2, 3)) self.assertEqual(a(1), 2) - self.assertEqual(a[1], 2) - self.assertEqual(a(3), None) - self.assertEqual(a[3], None) self.assertEqual(a(-1), 3) self.assertEqual(a(-5), None) - self.assertEqual(a[-5], None) self.assertEqual(a(-5, default='x'), 'x') self.assertEqual(a(-3, cast=str), '1') a.append('1234') @@ -139,8 +136,24 @@ class TestList(unittest.TestCase): a.append('x') self.assertRaises(HTTP, a, 4, cast=int) b = List() + # default is always returned when especified self.assertEqual(b(0, cast=int, default=None), None) - self.assertEqual(b(0, cast=int, default=None, otherwise='something'), None) + self.assertEqual(b(0, cast=int, default=None, otherwise='teste'), None) + self.assertEqual(b(0, cast=int, default='a', otherwise='teste'), 'a') + # if don't have value and otherwise is especified it will called + self.assertEqual(b(0, otherwise=lambda: 'something'), 'something') + self.assertEqual(b(0, cast=int, otherwise=lambda: 'something'), + 'something') + # except if default is especified + self.assertEqual(b(0, default=0, otherwise=lambda: 'something'), 0) + + def test_listgetitem(self): + '''Mantains list behaviour.''' + a = List((1, 2, 3)) + self.assertEqual(a[0], 1) + with self.assertRaises(IndexError): + a[3] + self.assertEqual(a[::-1], [3, 2, 1]) if __name__ == '__main__':