"""Tests for Persister.""" from oto import response from ows_product_physical.models import ows_marketing from ows_product_physical.models import persister def test_persister_update_product_highlights_exists(mocker): """Test update existing product highlights.""" product_id = 1 mkt_description = 'Some highlight' mocker.patch.object( ows_marketing, 'get_product_highlight_by_product_id', return_value=response.Response( message={'highlight_id': mkt_description}, status=200), autospec=True) mocker.patch.object( ows_marketing, 'update_product_highlight', return_value=response.Response(status=200), autospec=True) result = persister.update_product_highlights(product_id, mkt_description) assert result.status == 200 assert ows_marketing.get_product_highlight_by_product_id.called assert ows_marketing.update_product_highlight.called def test_persister_update_product_highlights_non_exists(mocker): """Test update existing product highlights.""" product_id = 1 mkt_description = 'Some highlight' mocker.patch.object( ows_marketing, 'get_product_highlight_by_product_id', return_value=response.Response(status=404), autospec=True) mocker.patch.object( ows_marketing, 'create_product_highlight', return_value=response.Response(status=201), autospec=True) result = persister.update_product_highlights(product_id, mkt_description) assert result.status == 201 assert ows_marketing.get_product_highlight_by_product_id.called assert ows_marketing.create_product_highlight.called def test_persister_update_product_highlights_error(mocker): """Test update existing product highlights.""" product_id = 1 mkt_description = 'Some highlight' server_error_response = response.Response(status=500) mocker.patch.object( ows_marketing, 'get_product_highlight_by_product_id', return_value=server_error_response, autospec=True) result = persister.update_product_highlights(product_id, mkt_description) assert result.status == 500 assert result == server_error_response