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 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)
def test_set_content_raises_if_called_on_multipart(self): cm = ContentManager() m = self._make_message() m['Content-Type'] = 'multipart/foo' with self.assertRaises(TypeError): cm.set_content(m, 'test')
def test_set_content_raises_if_unknown_type_and_no_default(self): cm = ContentManager() m = self._make_message() msg_obj = self.Thing() with self.assertRaisesRegex(KeyError, self.testobject_full_path): cm.set_content(m, msg_obj)