from unittest.mock import patch from flexmock import flexmock from oto import response from masters_registry.logic import bulk_tasks from tests.helpers import patches def make_get( client, valid_headers, num_records=10, order_by='create_datetime', order_direction='desc'): url = '/bulk?num_records={}&order_by={}&order_direction={}' url = url.format(num_records, order_by, order_direction) return client.get(url, headers=valid_headers) @patch( 'masters_registry.logic.bulk_tasks.get_tasks', new=patches.logic_bulk_tasks_get_tasks) def test_get_bulk( monkeypatch, client, valid_headers): """Test get with valida num_records """ res = make_get(client, valid_headers) assert res.status_code == 200 @patch( 'masters_registry.logic.bulk_tasks.get_tasks', new=patches.logic_bulk_tasks_get_tasks) def test_get_bulk_invalid_num_records( monkeypatch, client, valid_headers): """Test get with invalid num_records """ res = make_get(client, valid_headers, num_records='aaaa') assert res.status_code == 400 @patch( 'masters_registry.logic.bulk_tasks.get_tasks', new=patches.logic_bulk_tasks_get_tasks) def test_get_bulk_invalid_order_direction( monkeypatch, client, valid_headers): """Test get with invalid order direction """ res = make_get(client, valid_headers, order_direction='aaaa') assert res.status_code == 400 @patch( 'masters_registry.logic.bulk_tasks.get_tasks', new=patches.logic_bulk_tasks_get_tasks) def test_get_bulk_invalid_order_by( monkeypatch, client, valid_headers): """Test get with invalid order by """ res = make_get(client, valid_headers, order_by='aaaa') assert res.status_code == 400 @patch( 'masters_registry.logic.bulk_tasks.get_tasks', new=patches.logic_bulk_tasks_get_tasks) def test_get_bulk_no_num_records( monkeypatch, client, valid_headers): """Test get without num_records """ res = client.get('/bulk', headers=valid_headers) assert res.status_code == 200 def make_get_csv(url, client, valid_headers): valid_headers['Content-Type'] = 'application/json' return client.get(url, headers=valid_headers) def initial_report_response(): return response.Response( message={ 'content': 'ISRC\r\nUSA12345678\r\nUSA9876543\r\n', 'file_name': '2017-03-24_Bulk_Update_UPCs_ISRC_123.csv'} ) def test_get_task_context_handler_success( client, valid_headers, ows_features_mock, feature_engine): """Testing get_task_context handlers success """ (flexmock(bulk_tasks) .should_receive('generate_initial_report') .and_return(initial_report_response())) url = '/get_task_context' res = make_get_csv(url, client, valid_headers) assert res.content_type == 'application/json' def test_generate_report_handler_success( client, valid_headers, ows_features_mock, feature_engine): """Testing generate_report handlers success """ (flexmock(bulk_tasks) .should_receive('generate_report') .and_return(initial_report_response())) url = '/generate_report' res = make_get_csv(url, client, valid_headers) assert res.content_type == 'application/json'