Fix integration test

This commit is contained in:
f4lco
2023-12-06 18:49:21 +01:00
parent 2d4399c3db
commit 1bee1c3242
9 changed files with 3617 additions and 4930 deletions
+65 -15
View File
@@ -1,10 +1,9 @@
# -*- encoding: utf-8 -*-
import os
import re
import httpretty
import pytest
from stw_potsdam.swp_webspeiseplan_api import SWPWebspeiseplanAPI
@pytest.fixture
def api_offline():
@@ -21,22 +20,73 @@ def api_online_one_shot():
Subsequent API invocations will return with HTTP status code 500.
"""
# pylint: disable=unused-argument
def canned_menu(request, uri, response_headers):
path = os.path.join(os.path.dirname(__file__),
'resources', 'input.json')
with open(path, encoding='utf-8') as api_response:
return 200, response_headers, api_response.read()
def make_handler(filename):
path = os.path.join(
os.path.dirname(__file__),
'resources',
'integration-test',
filename,
)
responses = [
httpretty.Response(body=canned_menu),
httpretty.Response(body='invalid', status=500),
]
# 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()
httpretty.register_uri(httpretty.POST,
SWPWebspeiseplanAPI.URL_BASE,
responses=responses)
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