95 lines
2.4 KiB
Python
95 lines
2.4 KiB
Python
# -*- encoding: utf-8 -*-
|
|
import os
|
|
import re
|
|
import httpretty
|
|
import pytest
|
|
|
|
|
|
@pytest.fixture
|
|
def api_offline():
|
|
"""Disallow all network requests."""
|
|
httpretty.enable(allow_net_connect=False)
|
|
yield
|
|
httpretty.disable()
|
|
httpretty.reset()
|
|
|
|
|
|
@pytest.fixture
|
|
def api_online_one_shot():
|
|
"""Allow a single API request, returning the contents of 'input.json'.
|
|
|
|
Subsequent API invocations will return with HTTP status code 500.
|
|
"""
|
|
|
|
def make_handler(filename):
|
|
path = os.path.join(
|
|
os.path.dirname(__file__),
|
|
'resources',
|
|
'integration-test',
|
|
filename,
|
|
)
|
|
|
|
# pylint: disable=unused-argument
|
|
def handle(request, uri, response_headers):
|
|
with open(path, encoding='utf-8') as api_response:
|
|
return 200, response_headers, api_response.read()
|
|
|
|
return handle
|
|
|
|
httpretty.register_uri(
|
|
httpretty.GET,
|
|
"https://swp.webspeiseplan.de",
|
|
responses=[
|
|
httpretty.Response(body=make_handler('index.html')),
|
|
httpretty.Response(body='invalid', status=500),
|
|
],
|
|
)
|
|
|
|
httpretty.register_uri(
|
|
httpretty.GET,
|
|
'https://swp.webspeiseplan.de/main.b25ba5c971eb2b45f391.js',
|
|
responses=[
|
|
httpretty.Response(body=make_handler("snippet.js")),
|
|
])
|
|
|
|
httpretty.register_uri(
|
|
httpretty.GET,
|
|
re.compile(r'.*index.php.*model=outlet.*'),
|
|
match_querystring=True,
|
|
responses=[
|
|
httpretty.Response(body=make_handler('outlets.json')),
|
|
],
|
|
)
|
|
|
|
httpretty.register_uri(
|
|
httpretty.GET,
|
|
re.compile(r'.*index.php.*model=location.*'),
|
|
match_querystring=True,
|
|
responses=[
|
|
httpretty.Response(body=make_handler('location.json')),
|
|
],
|
|
)
|
|
|
|
httpretty.register_uri(
|
|
httpretty.GET,
|
|
re.compile(r'.*index.php.*model=menu.*'),
|
|
match_querystring=True,
|
|
responses=[
|
|
httpretty.Response(body=make_handler("menu.json")),
|
|
]
|
|
)
|
|
|
|
httpretty.register_uri(
|
|
httpretty.GET,
|
|
re.compile(r'.*index.php.*model=mealCategory.*'),
|
|
match_querystring=True,
|
|
responses=[
|
|
httpretty.Response(body=make_handler('meal_category.json')),
|
|
]
|
|
)
|
|
|
|
httpretty.enable(allow_net_connect=False)
|
|
yield httpretty
|
|
httpretty.disable()
|
|
httpretty.reset()
|