"""Test for the ows_assets model.""" import json from flexmock import flexmock from owsrequest import request import requests from salessheets.connectors import loggly from salessheets.models import ows_assets logger = loggly.get_current_logger() def test_get_large_cover_image_url_error_no_image_for_product_id(): """Test if get_large_cover_image_url doesn't receive image_upc.""" product_id = 123456 test_content = flexmock( decode=lambda *args: None ) failure_response = flexmock(requests.models.Response()) failure_response.status_code = 404 (flexmock(failure_response).should_receive('content') .and_return(test_content)) flexmock(json).should_receive('loads').and_return(test_content) flexmock(request).should_receive('process').and_return(failure_response) ows_assets.logger = flexmock(loggly.get_current_logger()) (flexmock(ows_assets.logger).should_receive('warning') .with_args( ('Could not retrieve large cover image URL for product_id: {} from ' 'ows-assets.').format(product_id)).once()) result = ows_assets.get_large_cover_image_url(product_id) assert result.status == 404 def test_get_large_cover_image_url_success(): """Test if get_large_cover_image_url returns successful result.""" success_test_content = 'the large cover image url' test_content = flexmock( decode=lambda *args: success_test_content ) success_response = flexmock(requests.models.Response()) success_response.status_code = 200 (flexmock(success_response).should_receive('content') .and_return(test_content)) flexmock(json).should_receive('loads').and_return(test_content) flexmock(request).should_receive('process').and_return(success_response) result = ows_assets.get_large_cover_image_url(123456) assert result assert result.message == success_test_content