Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 6 additions & 7 deletions django/report/report_nk.py
Original file line number Diff line number Diff line change
Expand Up @@ -805,19 +805,18 @@

def get_object_name(name):
## Map imported data names to object names
if name in ("Allgemein Warmwasser u Heizen", "Allgemein"):
return "_allgemein"

Check warning on line 809 in django/report/report_nk.py

View workflow job for this annotation

GitHub Actions / test

Missing coverage

Missing coverage on line 809
if name == "Hobbyräume und Lager Gesamtstromverbrauch":
return "_lager_strom"

Check warning on line 811 in django/report/report_nk.py

View workflow job for this annotation

GitHub Actions / test

Missing coverage

Missing coverage on line 811
# match = re.search(r"^(\d{3,4}\.?\d?) ", name)
match = re.search(r"^([0-9a-zA-Z.-]+) ?", name)
if match:
# nk.log.append("Match object %s -> %s" % (name, match.group(1)))
if match.group(1) == "9696":
return "_lager_strom"

Check warning on line 817 in django/report/report_nk.py

View workflow job for this annotation

GitHub Actions / test

Missing coverage

Missing coverage on line 817
return match.group(1)
elif name in ("Allgemein Warmwasser u Heizen", "Allgemein"):
return "_allgemein"
elif name == "Hobbyräume und Lager Gesamtstromverbrauch":
return "_lager_strom"
else:
raise RuntimeError("Could not match object: %s" % name)
raise RuntimeError("Ungültiger Objektname in den Messdaten: %s" % name)

Check warning on line 819 in django/report/report_nk.py

View workflow job for this annotation

GitHub Actions / test

Missing coverage

Missing coverage on line 819


def get_from_api(uri, params=None):
Expand Down Expand Up @@ -2661,13 +2660,13 @@
"ERROR: qrbill API returned: %s %s / %s"
% (response.status_code, response.reason, response.text)
)
return None

Check warning on line 2663 in django/report/report_nk.py

View workflow job for this annotation

GitHub Actions / test

Missing coverage

Missing coverage on line 2663
# nk.log.append('Got response: %s' % response.headers)
if response.headers["Content-Type"] == "application/pdf":
return response.getvalue()
return response.content
else:
nk.log.append("ERROR: qrbill API did not return a application/pdf data.")
nk.log.append(response.headers)

Check warning on line 2669 in django/report/report_nk.py

View workflow job for this annotation

GitHub Actions / test

Missing coverage

Missing coverage on lines 2668-2669
return None


Expand Down
19 changes: 18 additions & 1 deletion django/report/tests/test_nk_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@
from pprint import pprint
from unittest.mock import patch

import requests
from django.conf import settings
from django.test import Client, tag
from requests.structures import CaseInsensitiveDict

import report.tests.data as testdata
from geno.models import Invoice, InvoiceCategory
Expand All @@ -24,6 +26,21 @@
return redirect_request("POST", *args, **kwargs)


def convert_to_requests_response(response, url_path):
## Convert response to a requests-like response
r = requests.Response()
r.status_code = response.status_code
if hasattr(response, "content"):
r._content = response.content
else:
r._content = response.getvalue()
r.headers = CaseInsensitiveDict(response.headers)
r.url = url_path
r.encoding = response.charset
r.reason = response.reason_phrase
return r


def redirect_request(method, *args, **kwargs):
c = Client()
login_ok = c.login(username="superuser", password="secret")
Expand Down Expand Up @@ -60,8 +77,8 @@
**kwargs,
)
else:
raise ValueError(f"Method {method} not implemented.")

Check warning on line 80 in django/report/tests/test_nk_report.py

View workflow job for this annotation

GitHub Actions / test

Missing coverage

Missing coverage on line 80
return response
return convert_to_requests_response(response, url_path)


class NKReportTest(ReportTestCase):
Expand Down
Loading