def setUp(self): self.mock_config = Mock() self.mock_config.get.return_value = '1' self.mock_report = Mock() self.mock_report.headers = {} self.listener = StreamerListener( Mock(), self.mock_config, Mock(unit_id='abc', unit_type_id='123'), )
def test_download_succeeded_pulp_request(self, mock_deferred_download): # Setup mock_request = Mock() mock_request.getHeader.return_value = 'True' mock_catalog_entry = Mock() mock_catalog_entry.unit_id = 'abc' mock_catalog_entry.unit_type_id = '123' mock_data = { 'catalog_entry': mock_catalog_entry, 'client_request': mock_request } mock_report = Mock(data=mock_data) listener = StreamerListener(Mock(), Mock()) # Test listener.download_succeeded(mock_report) self.assertEqual(0, mock_deferred_download.call_count)
def test_download_succeeded_entry_not_unique(self, mock_deferred_download): """Assert NotUniqueError exceptions are ignored.""" # Setup mock_request = Mock() mock_request.getHeader.return_value = None mock_catalog_entry = Mock() mock_deferred_download.return_value.save.side_effect = NotUniqueError() mock_data = { 'catalog_entry': mock_catalog_entry, 'client_request': mock_request } mock_report = Mock(data=mock_data) listener = StreamerListener(Mock(), Mock()) # Test listener.download_succeeded(mock_report) mock_deferred_download.return_value.save.assert_called_once_with()
def test_download_headers(self): """ The cache-control headers are set appropriately. """ mock_config = Mock() mock_config.get.return_value = '1' mock_report = Mock() mock_report.headers = {'key': 'value', 'key2': 'value2'} expected_headers = mock_report.headers.copy() expected_headers['cache-control'] = 'public, s-maxage=1, max-age=1' listener = StreamerListener(Mock(), mock_config) listener.download_headers(mock_report) self.assertEqual(3, listener.request.setHeader.call_count) for expected, actual in zip(expected_headers.items(), listener.request.setHeader.call_args_list): self.assertEqual(expected, actual[0])
def test_download_failed(self): """ The content-length is corrected since Nectar does not download anything if it receives a non-200 response. """ mock_report = Mock() mock_report.error_report = { 'response_code': '418', 'response_msg': 'I am a teapot.' } mock_report.url = 'https://example.com/teapot/' listener = StreamerListener(Mock(), Mock()) listener.download_failed(mock_report) self.assertEqual(('Connection', 'close'), listener.request.setHeader.call_args_list[0][0]) self.assertEqual(('Content-Length', '0'), listener.request.setHeader.call_args_list[1][0]) listener.request.setResponseCode.assert_called_once_with('418')
def test_download_succeeded(self, mock_deferred_download): """Assert a deferred download entry is made.""" # Setup mock_request = Mock() mock_request.getHeader.return_value = None mock_catalog_entry = Mock() mock_catalog_entry.unit_id = 'abc' mock_catalog_entry.unit_type_id = '123' mock_data = { 'catalog_entry': mock_catalog_entry, 'client_request': mock_request } mock_report = Mock(data=mock_data) listener = StreamerListener(Mock(), Mock()) # Test listener.download_succeeded(mock_report) mock_deferred_download.assert_called_once_with(unit_id='abc', unit_type_id='123') mock_deferred_download.return_value.save.assert_called_once_with()