test_inspect.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import unittest
  2. from django.utils import inspect
  3. class Person(object):
  4. def no_arguments(self):
  5. return None
  6. def one_argument(self, something):
  7. return something
  8. def just_args(self, *args):
  9. return args
  10. def all_kinds(self, name, address='home', age=25, *args, **kwargs):
  11. return kwargs
  12. class TestInspectMethods(unittest.TestCase):
  13. def test_get_func_full_args_no_arguments(self):
  14. self.assertEqual(inspect.get_func_full_args(Person.no_arguments), [])
  15. def test_get_func_full_args_one_argument(self):
  16. self.assertEqual(inspect.get_func_full_args(Person.one_argument), [('something',)])
  17. def test_get_func_full_args_all_arguments(self):
  18. arguments = [('name',), ('address', 'home'), ('age', 25), ('*args',), ('**kwargs',)]
  19. self.assertEqual(inspect.get_func_full_args(Person.all_kinds), arguments)
  20. def test_func_accepts_var_args_has_var_args(self):
  21. self.assertIs(inspect.func_accepts_var_args(Person.just_args), True)
  22. def test_func_accepts_var_args_no_var_args(self):
  23. self.assertIs(inspect.func_accepts_var_args(Person.one_argument), False)