def test_apply_mutations__handles_args_without_dunders(self): fake_json = {'no': 'underscores'} consumer = MockConsumer() a = AppContainer(None, consumers=[consumer]) a.apply_consumer_mutations(fake_json, None) self.assertEqual(len(fake_json), 1) self.assertDictContainsSubset({'no': 'underscores'}, fake_json) self.assertEqual(len(consumer.vals), 0)
def test_apply_mutations__catches_multiple_params(self): fake_json = { 'test__foo': 'bar', 'test__bim': 'bop' } consumer = MockConsumer() a = AppContainer(None, consumers=[consumer]) a.apply_consumer_mutations(fake_json, None) self.assertEqual(2, len(consumer.vals)) self.assertDictContainsSubset({'foo': 'bar', 'bim': 'bop'}, consumer.vals)
def test_apply_mutations__deletes_params_from_original_object(self): fake_json = { 'test__foo': 'bar', 'doesnt__match': 'baz' } consumer = MockConsumer() a = AppContainer(None, consumers=[consumer]) a.apply_consumer_mutations(fake_json, None) self.assertEqual(len(fake_json), 1) self.assertDictContainsSubset({'doesnt__match': 'baz'}, fake_json) self.assertEqual(len(consumer.vals), 1) self.assertDictContainsSubset({'foo': 'bar'}, consumer.vals)
def setUp(self): self.app_container = AppContainer(None) self.mock_request = MockRequest()
class AppContainerTests(unittest.TestCase): def setUp(self): self.app_container = AppContainer(None) self.mock_request = MockRequest() def test__default_handlers_exist(self): a = AppContainer(None) self.assertNotEqual(len(a._arg_providers), 0) def test_extract_params__returns_nothing_for_no_arg_func(self): def func(): pass result = self.app_container._extract_params_from_request( functools.partial(func), self.mock_request) self.assertEqual(result, {}) def test_extract_params__doesnt_return_self_for_method(self): class Klass(object): def meth(self): pass klass = Klass() func = functools.partial(klass.meth) result = self.app_container._extract_params_from_request( func, self.mock_request) self.assertEqual(result, {}) def test_extract_params__doesnt_error_on_no_prefix_param(self): def func(something): pass result = self.app_container._extract_params_from_request( functools.partial(func), self.mock_request) self.assertEqual(result, {}) def test_extract_parmas__doesnt_return_args_outside_of_prefix(self): def func(something__here): pass result = self.app_container._extract_params_from_request( functools.partial(func), self.mock_request) self.assertEqual(result, {}) def test_extract_params__returns_get_params(self): def func(get__foo): pass self.mock_request.args = {'foo': 'bar'} result = self.app_container._extract_params_from_request( functools.partial(func), self.mock_request) self.assertEqual(result, {'get__foo': 'bar'}) def test_extract_params__returns_post_params(self): def func(post__foo): pass self.mock_request.form = {'foo': 'bar'} result = self.app_container._extract_params_from_request( functools.partial(func), self.mock_request) self.assertEqual(result, {'post__foo': 'bar'}) def test_extract_params__doesnt_pull_from_post_on_get(self): def func(post__foo): pass # Key here is that I'm populating args [where get data lives], # not form [where post data lives] self.mock_request.args = {'foo': 'bar'} result = self.app_container._extract_params_from_request( functools.partial(func), self.mock_request) self.assertEqual(result, {'post__foo': None}) def test_extract_params__populates_with_default_kwargs(self): def func(post__foo=None): pass self.mock_request.form = {'foo': 'bar'} result = self.app_container._extract_params_from_request( functools.partial(func), self.mock_request) self.assertEqual(result, {'post__foo': 'bar'}) def test_apply_mutations__catches_multiple_params(self): fake_json = { 'test__foo': 'bar', 'test__bim': 'bop' } consumer = MockConsumer() a = AppContainer(None, consumers=[consumer]) a.apply_consumer_mutations(fake_json, None) self.assertEqual(2, len(consumer.vals)) self.assertDictContainsSubset({'foo': 'bar', 'bim': 'bop'}, consumer.vals) def test_apply_mutations__deletes_params_from_original_object(self): fake_json = { 'test__foo': 'bar', 'doesnt__match': 'baz' } consumer = MockConsumer() a = AppContainer(None, consumers=[consumer]) a.apply_consumer_mutations(fake_json, None) self.assertEqual(len(fake_json), 1) self.assertDictContainsSubset({'doesnt__match': 'baz'}, fake_json) self.assertEqual(len(consumer.vals), 1) self.assertDictContainsSubset({'foo': 'bar'}, consumer.vals) def test_apply_mutations__handles_args_without_dunders(self): fake_json = {'no': 'underscores'} consumer = MockConsumer() a = AppContainer(None, consumers=[consumer]) a.apply_consumer_mutations(fake_json, None) self.assertEqual(len(fake_json), 1) self.assertDictContainsSubset({'no': 'underscores'}, fake_json) self.assertEqual(len(consumer.vals), 0)