def test_file_bridge(self, mock_raise, mock_request): convoy = Convoy(self.config) for i in xrange(0, 2): convoy.documents_transfer_queue.put({ 'get_url': 'http://fs.com/item_{}'.format(i), 'upload_url': 'http://fex.com/item_{}'.format(i) }) convoy.auctions_client = mock.MagicMock() convoy.auctions_client.get_file.side_effect = [ ('this is a file content', 'filename'), Exception('Something went wrong.'), ('this is a file content', 'filename') ] convoy.stop_transmitting = mock.MagicMock() convoy.stop_transmitting.__nonzero__.side_effect = [ False, False, False, False, True, True ] self.assertEqual(convoy.documents_transfer_queue.qsize(), 2) convoy.file_bridge() self.assertEqual(convoy.documents_transfer_queue.qsize(), 0) self.assertEqual(convoy.auctions_client.get_file.call_count, 3) self.assertEqual( convoy.auctions_client.ds_client.document_upload_not_register. call_count, 2)
def test_process_single_auction(self, mock_loki_process, mock_raise, mock_request, mock_info, mock_warning): auction_id = uuid4().hex auction_doc = munchify({ "data": { 'status': 'unsuccessful', 'id': auction_id, 'merchandisingObject': uuid4().hex, 'procurementMethodType': 'sellout.english' } }) convoy = Convoy(self.config) convoy.auctions_client = mock.MagicMock() convoy.auctions_client.get_auction.return_value = auction_doc convoy.process_single_auction(auction_id) mock_loki_process.assert_called_with(auction_doc['data']) mock_info.assert_called_with('Received auction {} in status {}'.format( auction_id, auction_doc['data'].status, ), extra={ 'MESSAGE_ID': GET_AUCTION_MESSAGE_ID, 'STATUS': auction_doc['data'].status }) # Auction can not be found convoy.auctions_client.get_auction.side_effect = ResourceNotFound convoy.process_single_auction(auction_id) assert mock_loki_process.call_count == 1 mock_warning.assert_called_with( 'Auction object {} not found'.format(auction_id))