lodgeit/tests/__init__.py
David Pursehouse f79c65815a Fix up the tests and add tox configuration to run them
The alfajor HTTP test wrapper is not working properly.  All the tests
are failing with:

  AttributeError: '_APIClientResponse' object has no attribute '_status_code'

It doesn't look like alfajor is being maintained any more [1, 2], so
remove the dependency on it and run the tests directly through the
werkzeug client instead.

The test_json_get_styles test still failed because the content and
ordering of the styles returned from the API is dependent on the
platform on which the tests run.  Instead of testing against a fixed
expected result, which could be different on another platform,
generate the expected results dynamically.

Update the tox configuration and test-requirements.txt to be able to
run the tests via tox.

[1] https://github.com/idealist/Alfajor
[2] https://github.com/idealistdev/alfajor

Change-Id: I4db6783b9d725ce096575035ea27d28be8e6fed5
2015-11-24 13:33:00 +09:00

22 lines
626 B
Python

from werkzeug.test import Client
from werkzeug.wrappers import BaseResponse
from lodgeit.application import make_app
from json import loads
client = Client(make_app('sqlite://', 'NONE', False, True), BaseResponse)
def is_json(response):
"""True if the response is JSON and the HTTP status was 200."""
return (response.status_code == 200 and
response.headers.get('Content-Type', '') == 'application/json')
def json(response):
"""The response parsed as JSON.
No attempt is made to ensure the response is valid or even looks
like JSON before parsing.
"""
return loads(response.data)