summaryrefslogtreecommitdiff
path: root/tests/utils_tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/utils_tests')
-rw-r--r--tests/utils_tests/test_inspect.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/utils_tests/test_inspect.py b/tests/utils_tests/test_inspect.py
new file mode 100644
index 0000000000..88a9fb0d74
--- /dev/null
+++ b/tests/utils_tests/test_inspect.py
@@ -0,0 +1,35 @@
+import unittest
+
+from django.utils import inspect
+
+
+class Person(object):
+ def no_arguments(self):
+ return None
+
+ def one_argument(self, something):
+ return something
+
+ def just_args(self, *args):
+ return args
+
+ def all_kinds(self, name, address='home', age=25, *args, **kwargs):
+ return kwargs
+
+
+class TestInspectMethods(unittest.TestCase):
+ def test_get_func_full_args_no_arguments(self):
+ self.assertEqual(inspect.get_func_full_args(Person.no_arguments), [])
+
+ def test_get_func_full_args_one_argument(self):
+ self.assertEqual(inspect.get_func_full_args(Person.one_argument), [('something',)])
+
+ def test_get_func_full_args_all_arguments(self):
+ arguments = [('name',), ('address', 'home'), ('age', 25), ('*args',), ('**kwargs',)]
+ self.assertEqual(inspect.get_func_full_args(Person.all_kinds), arguments)
+
+ def test_func_accepts_var_args_has_var_args(self):
+ self.assertEqual(inspect.func_accepts_var_args(Person.just_args), True)
+
+ def test_func_accepts_var_args_no_var_args(self):
+ self.assertEqual(inspect.func_accepts_var_args(Person.one_argument), False)