Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from mock import MagicMock
- from soktest import TestCase
- from .. import decorators
- class WrongParameterTest(TestCase):
- def test_init(self):
- """Should set the name"""
- error = decorators.WrongParameter('name')
- self.assertEqual('name', error.parameter_name)
- def test_tostr(self):
- """Should return name"""
- error = decorators.WrongParameter('name')
- self.assertEqual('name', str(error))
- class GetAvalibleArgsTest(TestCase):
- def test_good(self):
- """Should return dict of all the avalible arguments"""
- request = MagicMock()
- result = decorators.get_avalible_args(request)
- self.assertEqual(request, result['request'])
- self.assertEqual(request.POST, result['POST'])
- self.assertEqual(request.GET, result['GET'])
- self.assertEqual(request.matchdict, result['matchdict'])
- self.assertEqual(request.db, result['db'])
- self.assertEqual(request.registry['settings'], result['settings'])
- self.assertEqual(request.session, result['session'])
- self.assertEqual(request.user, result['user'])
- class GetKwargsTest(TestCase):
- def setUp(self):
- super(GetKwargsTest, self).setUp()
- self.request = MagicMock()
- self.avalible = decorators.get_avalible_args(self.request)
- def test_success(self):
- """Should return dict of selected arguments."""
- kwargs = decorators.get_kwargs(self.avalible, ['request', 'POST'])
- self.assertEqual(self.request, kwargs['request'])
- self.assertEqual(self.request.POST, kwargs['POST'])
- def test_fail(self):
- """Should raise error when argument has a wrong name"""
- self.assertRaises(decorators.WrongParameter, decorators.get_kwargs,
- self.avalible, ['request', 'something else'])
- class UnpackRequestTest(TestCase):
- def test_success(self):
- """Should provide method with needed arguments."""
- def example_method(user):
- return user
- request = MagicMock()
- example_method
- fun = decorators.UnpackRequest(example_method)
- user = fun(request)
- self.assertEqual(request.user, user)
Advertisement
Add Comment
Please, Sign In to add comment