def test_tenor_broken_gif_url(self, mock_requests, mock_exists): mock_exists.return_value = False self.set_mock_response(mock_requests, gif_response) input_source = 'https://tenor.com/view/the-matrix-gif' with self.assertRaises(Exception) as cm: process_input_source(input_source, api_key) self.assertEqual(cm.exception.args[0], 'Bad GIF URL.') self.assertEqual(mock_exists.call_count, 0) self.assertEqual(mock_requests.get.call_count, 0)
def test_tenor_gif_id_empty_json(self, mock_requests, mock_exists): mock_exists.return_value = False self.set_mock_response(mock_requests, {}) input_source = '11313704' with self.assertRaises(Exception) as cm: process_input_source(input_source, api_key) self.assertEqual(cm.exception.args[0], 'Could not find GIF.') self.assertEqual(mock_exists.call_count, 1) self.assertEqual(mock_requests.get.call_count, 1)
def test_tenor_gif_id_error_occurred(self, mock_requests, mock_exists): mock_exists.return_value = False self.set_mock_response(mock_requests, {'error': 'some error'}) input_source = '11313704' with self.assertRaises(Exception) as cm: process_input_source(input_source, api_key) self.assertEqual(cm.exception.args[0], 'An error occurred: some error') self.assertEqual(mock_exists.call_count, 1) self.assertEqual(mock_requests.get.call_count, 1)
def test_tenor_search_empty_results(self, mock_requests, mock_exists): mock_exists.return_value = False self.set_mock_response(mock_requests, empty_gif_response) input_source = 'happy birthday' with self.assertRaises(Exception) as cm: process_input_source(input_source, api_key) self.assertEqual(cm.exception.args[0], 'Could not find GIF.') self.assertEqual(mock_exists.call_count, 1) self.assertEqual(mock_requests.get.call_count, 1)
def test_tenor_gif_id_json_decode_error(self, mock_requests, mock_exists): mock_exists.return_value = False self.set_mock_response(mock_requests, lambda *args: json.loads('<'), side_effect=True) input_source = '11313704' with self.assertRaises(Exception) as cm: process_input_source(input_source, api_key) self.assertEqual(cm.exception.args[0], 'A server error occurred.') self.assertEqual(mock_exists.call_count, 1) self.assertEqual(mock_requests.get.call_count, 1)
def test_tenor_gif_id_exception_when_getting_json(self, mock_requests, mock_exists): mock_exists.return_value = False self.set_mock_response(mock_requests, Exception('some error'), side_effect=True) input_source = '11313704' with self.assertRaises(Exception) as cm: process_input_source(input_source, api_key) self.assertEqual(cm.exception.args[0], 'some error') self.assertEqual(mock_exists.call_count, 1) self.assertEqual(mock_requests.get.call_count, 1)
def test_https_url(self, mock_requests, mock_exists): mock_exists.return_value = False input_source = 'https://example.com/foo.gif' processed_input_source = process_input_source(input_source, api_key) self.assertEqual(processed_input_source, input_source) self.assertEqual(mock_exists.call_count, 1) self.assertEqual(mock_requests.get.call_count, 0)
def test_file(self, mock_requests, mock_exists): mock_exists.return_value = True input_source = 'foo.gif' processed_input_source = process_input_source(input_source, api_key) self.assertEqual(processed_input_source, input_source) self.assertEqual(mock_exists.call_count, 1) self.assertEqual(mock_requests.get.call_count, 0)
def test_tenor_gif_url(self, mock_requests, mock_exists): mock_exists.return_value = False self.set_mock_response(mock_requests, gif_response) input_source = 'https://tenor.com/view/the-matrix-gif-5437241' processed_input_source = process_input_source(input_source, api_key) mpr_url = gif_response['results'][0]['media'][0]['mp4']['url'] self.assertEqual(processed_input_source, mpr_url) self.assertEqual(mock_exists.call_count, 1) self.assertEqual(mock_requests.get.call_count, 1)
def test_tenor_gif_id(self, mock_requests, mock_exists): mock_exists.return_value = False self.set_mock_response(mock_requests, gif_response) input_source = '11313704' processed_input_source = process_input_source(input_source, api_key) mpr_url = gif_response['results'][0]['media'][0]['mp4']['url'] self.assertEqual(processed_input_source, mpr_url) self.assertEqual(mock_exists.call_count, 1) self.assertEqual(mock_requests.get.call_count, 1)