"""Test Message Model.""" import json import pytest from sales.constants.exceptions import InvalidMessageError from sales.models.export_request import ExportRequest def test_create_export_request(valid_message_body): """Test create ExportRequest.""" string_body = json.dumps(valid_message_body) export_request = ExportRequest(string_body) assert export_request.destination_s3_bucket == \ valid_message_body.get('destination_s3_bucket') def test_invalid_message_error(valid_message_body): """Test invalid message body.""" valid_message_body['foo'] = 'bar' string_body = json.dumps(valid_message_body) with pytest.raises(InvalidMessageError): ExportRequest(string_body) def test_add_error(valid_message_body): """Test add_error.""" string_body = json.dumps(valid_message_body) export_request = ExportRequest(string_body) export_request.add_error('foo bar') assert export_request.errors[0] == 'foo bar' assert len(export_request.errors) == 1 def test_get_response_data(valid_message_body): """Test get_response_data.""" string_body = json.dumps(valid_message_body) export_request = ExportRequest(string_body) response_data = export_request.get_response_data() response_dict = json.loads(response_data) valid_message_body['errors'] = [] valid_message_body['sales_file_id'] = \ str(valid_message_body['sales_file_id']) valid_message_body['callback_url'] = \ '/' + valid_message_body['callback_url'] assert response_dict == valid_message_body def test_no_payload(): """Test calling ExportRequest constructor with an empty payload.""" with pytest.raises(InvalidMessageError): er = ExportRequest('') assert not er