"""Tests for utils for formatting/casting different types of data.""" import pytest from requests import models import simplejson as json from ows_accounting.utils import format VALID_RESPONSE_JSON = {'foo': 'bar'} VALID_RESPONSE_STRING = 'Something' def valid_response(): response = models.Response() response.status_code = 200 response._content = str.encode(json.dumps(VALID_RESPONSE_JSON)) return response def error_response(): response = models.Response() response.status_code == 400 response._content = str.encode(VALID_RESPONSE_STRING) return response def invalid_response(): response = models.Response() response.status_code == 500 response._content = None return response @pytest.mark.parametrize('response, parsed_json', [ (valid_response(), VALID_RESPONSE_JSON), (error_response(), VALID_RESPONSE_STRING), (invalid_response(), '') ]) def test_get_response_json(response, parsed_json): message = format.get_response_json(response) assert parsed_json == message