def set_key_as_set_content_key(self, order, key): def foo_setter(msg, obj, foo=None): msg['X-Foo-Header'] = foo msg.set_payload(obj) cm = ContentManager() cm.add_set_handler(key, foo_setter) m = self._make_message() msg_obj = self.Thing() cm.set_content(m, msg_obj, foo='bar') self.assertEqual(m['X-Foo-Header'], 'bar') self.assertEqual(m.get_payload(), msg_obj)
def test_set_content_calls_clear_content(self): m = self._make_message() m['Content-Foo'] = 'bar' m['Content-Type'] = 'text/html' m['To'] = 'test' m.set_payload('abc') cm = ContentManager() cm.add_set_handler(str, lambda *args, **kw: None) m.set_content('xyz', content_manager=cm) self.assertIsNone(m['Content-Foo']) self.assertIsNone(m['Content-Type']) self.assertEqual(m['To'], 'test') self.assertIsNone(m.get_payload())
def set_key_as_set_content_key_order(self, order, key): def foo_setter(msg, obj): msg['X-FooBar-Header'] = 'foo' msg.set_payload(obj) def bar_setter(msg, obj): msg['X-FooBar-Header'] = 'bar' cm = ContentManager() cm.add_set_handler(key, foo_setter) for precedence, key in self.get_key_params.values(): if precedence > order: cm.add_set_handler(key, bar_setter) m = self._make_message() msg_obj = self.Thing() cm.set_content(m, msg_obj) self.assertEqual(m['X-FooBar-Header'], 'foo') self.assertEqual(m.get_payload(), msg_obj)