"""Test assets logic.""" from unittest.mock import patch import pytest from src import service from src.logic import assets def test_apply_correction_success(request_engine): """Test apply correction success.""" request_engine[service.OWS_ASSETS].add_spec( 'PUT', '/v2/asset/product/1/corrections/apply', response={'foo': 'bar'}) actual = assets.apply_corrections(1) assert actual == {'foo': 'bar'} @patch('owsrequest.request.process') # request_engine doesn't support response.text def test_apply_correction_no_rows(moecked_request): """Test apply correction not found/no rows.""" moecked_request.return_value.status_code = 404 moecked_request.return_value.text = 'No rows updated.' actual = assets.apply_corrections(1) assert actual is None def test_apply_correction_throws(request_engine): """Test apply correction fail.""" request_engine[service.OWS_ASSETS].add_spec( 'PUT', '/v2/asset/product/1/corrections/apply', response={'foo': 'bar'}, status=400) with pytest.raises(Exception) as e: assets.apply_corrections(1) assert e.value.args[0] == 'apply_corrections failed for product id 1\nStatus code: 400\nError: {"foo": "bar"}\n' # noqa