"""Tests for ows-conflict-manager model.""" import copy from owsrequest.utils import mock_request import pytest from masters_registry.constant import api_const from masters_registry.constant import error from masters_registry.constant import field_const from masters_registry.models import ows_conflict_manager success_response = { 'status': 'ORCHARD_ASSERTED', 'updated_conflicts_amount': 10 } failed_response = {'code': 'bad_request', 'message': 'invalid request body.'} @pytest.fixture() def valid_args(): """Valid model arguments fixture.""" return { field_const.GROUPED_CONFLICTS_IDS: [ '123|2018-08-02|Sony|ACTION' ], field_const.STATUS: 'ORCHARD_ASSERTED', field_const.NOTE: '-', field_const.ACCOUNT_ID: '123', field_const.ACCOUNT_TYPE: 'vendor', 'correlation_id': '123', 'orchard_user_id': 'oa:123' } @pytest.fixture() def invalid_args(valid_args): """Invalid model arguments fixture.""" args = copy.deepcopy(valid_args) args['status'] = None return args def test_post_bulk_update_conflict_status_success(valid_args): """Test successful request to ows-conflict-manager.""" mock = mock_request.post( api_const.OWS_CONFLICT_MANAGER, '/conflicts/status/bulk', status=200, response=success_response) result = ows_conflict_manager.bulk_update_conflict_status( **valid_args) assert mock.called assert result assert result.message == success_response def test_post_bulk_update_conflict_status_failed(invalid_args): """Test failed request to ows-conflict-manager.""" mock = mock_request.post( api_const.OWS_CONFLICT_MANAGER, '/conflicts/status/bulk', status=400, response=failed_response) result = ows_conflict_manager.bulk_update_conflict_status( **invalid_args) assert mock.called assert result.status == 400 assert result.errors['code'] == error.OWS_CONFLICT_MANAGER_ERROR assert result.errors['message'] == failed_response