def test_push_attachments(self, get_mock, send_mock, app_mock): app_mock.media.get.return_value = TestMedia(b'bin') dest = {'config': {'assets_url': 'http://example.com', 'secret_token': 'foo'}} item = { 'type': 'text', 'attachments': [ {'id': 'foo', 'media': 'media-id', 'mimetype': 'text/plain'}, ] } service = HTTPPushService() service._copy_published_media_files(item, dest) app_mock.media.get.assert_called_with('media-id', resource='attachments') get_mock.assert_called_with('http://example.com/media-id') send_mock.assert_called_once_with(mock.ANY) request = send_mock.call_args[0][0] self.assertEqual('http://example.com/', request.url) self.assertEqual('POST', request.method) self.assertIn(b'bin', request.body) self.assertIn(b'media-id', request.body) self.assertIn('x-superdesk-signature', request.headers) self.assertEqual(request.headers['x-superdesk-signature'], 'sha1=%s' % hmac.new(b'foo', request.body, 'sha1').hexdigest())
def test_push_attachments(self, get_mock, send_mock, app_mock): app_mock.config = {} app_mock.media.get.return_value = TestMedia(b"bin") dest = {"config": {"assets_url": "http://example.com", "secret_token": "foo"}} item = { "type": "text", "attachments": [ {"id": "foo", "media": "media-id", "mimetype": "text/plain"}, ], } service = HTTPPushService() service._copy_published_media_files(item, dest) app_mock.media.get.assert_called_with("media-id", resource="attachments") get_mock.assert_called_with("http://example.com/media-id", timeout=(5, 30)) send_mock.assert_called_once_with(mock.ANY, timeout=(5, 30)) request = send_mock.call_args[0][0] self.assertEqual("http://example.com/", request.url) self.assertEqual("POST", request.method) self.assertIn(b"bin", request.body) self.assertIn(b"media-id", request.body) self.assertIn("x-superdesk-signature", request.headers) self.assertEqual( request.headers["x-superdesk-signature"], "sha1=%s" % hmac.new(b"foo", request.body, "sha1").hexdigest() )
def test_push_associated_assets(self, get_mock, send_mock, app_mock): app_mock.media.get.return_value = TestMedia(b'bin') dest = {'config': {'assets_url': 'http://example.com'}} item = get_fixture('package') service = HTTPPushService() service._copy_published_media_files({}, dest) get_mock.assert_not_called() send_mock.assert_not_called() service._copy_published_media_files(item, dest) images = [ # embedded original '2017020111028/9a836848c3c3387a151dbed96e83b7d50e6b0e71ca397e0b1dc0f4b2f4127acd.jpg', # main-0 original '20170201110216/d3ad29bafe0710c42b7cfc201939f266c6ca5c11a713625388decff4da87ba5b.jpg', # embedded thumbnail '2017020111028/a0502320d6d07dd921253171e971943adf791eb2b34dfe82da73c053a343a7c2.jpg', ] for media in images: get_mock.assert_any_call('http://example.com/%s' % media)
def test_push_associated_assets(self, get_mock, send_mock, app_mock): app_mock.config = {} app_mock.media.get.return_value = TestMedia(b"bin") dest = {"config": {"assets_url": "http://example.com"}} item = get_fixture("package") service = HTTPPushService() service._copy_published_media_files({}, dest) get_mock.assert_not_called() send_mock.assert_not_called() service._copy_published_media_files(item, dest) images = [ # embedded original "2017020111028/9a836848c3c3387a151dbed96e83b7d50e6b0e71ca397e0b1dc0f4b2f4127acd.jpg", # main-0 original "20170201110216/d3ad29bafe0710c42b7cfc201939f266c6ca5c11a713625388decff4da87ba5b.jpg", # embedded thumbnail "2017020111028/a0502320d6d07dd921253171e971943adf791eb2b34dfe82da73c053a343a7c2.jpg", ] for media in images: get_mock.assert_any_call("http://example.com/%s" % media, timeout=(5, 30))
def test_push_attachments(self, get_mock, post_mock, app_mock): app_mock.media.get.return_value = 'bin' dest = {'config': {'assets_url': 'http://example.com'}} item = { 'type': 'text', 'attachments': [ { 'id': 'foo', 'media': 'media-id', 'mimetype': 'text/plain' }, ] } service = HTTPPushService() service._copy_published_media_files(item, dest) app_mock.media.get.assert_called_with('media-id', resource='attachments') get_mock.assert_called_with('http://example.com/media-id') post_mock.assert_called_with('http://example.com', files={ 'media': ('media-id', app_mock.media.get.return_value, 'text/plain', {}) }, data={'media_id': 'media-id'})
def test_push_associated_assets(self, get_mock, post_mock, app_mock): app_mock.media.get.return_value = 'bin' dest = {'config': {'assets_url': 'http://example.com'}} item = get_fixture('package') service = HTTPPushService() service._copy_published_media_files({}, dest) get_mock.assert_not_called() post_mock.assert_not_called() service._copy_published_media_files(item, dest) images = [ # embedded original '2017020111028/9a836848c3c3387a151dbed96e83b7d50e6b0e71ca397e0b1dc0f4b2f4127acd.jpg', # main-0 original '20170201110216/d3ad29bafe0710c42b7cfc201939f266c6ca5c11a713625388decff4da87ba5b.jpg', # embedded thumbnail '2017020111028/a0502320d6d07dd921253171e971943adf791eb2b34dfe82da73c053a343a7c2.jpg', ] for media in images: get_mock.assert_any_call('http://example.com/%s' % media) post_mock.assert_any_call('http://example.com', files={ 'media': (media, app_mock.media.get.return_value, 'image/jpeg', {}) }, data={'media_id': media})
def test_push_attachments(self, get_mock, send_mock, app_mock): app_mock.media.get.return_value = 'bin' dest = {'config': {'assets_url': 'http://example.com', 'secret_token': 'foo'}} item = { 'type': 'text', 'attachments': [ {'id': 'foo', 'media': 'media-id', 'mimetype': 'text/plain'}, ] } service = HTTPPushService() service._copy_published_media_files(item, dest) app_mock.media.get.assert_called_with('media-id', resource='attachments') get_mock.assert_called_with('http://example.com/media-id') self.assertIsNotNone(send_mock.call_args) request = send_mock.call_args[0][0] self.assertEqual('http://example.com/', request.url) self.assertEqual('POST', request.method) self.assertIn(b'bin', request.body) self.assertIn(b'media-id', request.body) self.assertIn('x-superdesk-signature', request.headers) self.assertEqual(request.headers['x-superdesk-signature'], 'sha1=%s' % hmac.new(b'foo', request.body, 'sha1').hexdigest())
def test_push_attachments(self, get_mock, post_mock, app_mock): app_mock.media.get.return_value = 'bin' dest = {'config': {'assets_url': 'http://example.com'}} item = { 'type': 'text', 'attachments': [ {'id': 'foo', 'media': 'media-id', 'mimetype': 'text/plain'}, ] } service = HTTPPushService() service._copy_published_media_files(item, dest) app_mock.media.get.assert_called_with('media-id', resource='attachments') get_mock.assert_called_with('http://example.com/media-id') post_mock.assert_called_with( 'http://example.com', files={'media': ('media-id', app_mock.media.get.return_value, 'text/plain')}, data={'media_id': 'media-id'})