Fix: Werktagsberechnung robust, Checkbox-Auswertung verbessert, Tests angepasst
This commit is contained in:
28
test_app.py
28
test_app.py
@@ -15,7 +15,7 @@ def test_homepage(client):
|
||||
|
||||
def test_tage_berechnung(client):
|
||||
resp = client.post('/', data={
|
||||
'action': 'tage',
|
||||
'action': 'tage_werktage',
|
||||
'start1': '2024-01-01',
|
||||
'end1': '2024-01-10'
|
||||
})
|
||||
@@ -27,16 +27,34 @@ def test_xss_protection(client):
|
||||
# Versuche ein Skript einzuschleusen
|
||||
xss = '<script>alert(1)</script>'
|
||||
resp = client.post('/', data={
|
||||
'action': 'tage',
|
||||
'action': 'tage_werktage',
|
||||
'start1': xss,
|
||||
'end1': '2024-01-10'
|
||||
})
|
||||
assert resp.status_code == 200
|
||||
# Das Skript darf nicht im HTML erscheinen (sollte escaped sein)
|
||||
# Das Skript darf nicht im HTML erscheinen
|
||||
assert b'<script>alert(1)</script>' not in resp.data
|
||||
assert b'<script>alert(1)</script>' in resp.data
|
||||
# Es sollte eine Fehlermeldung erscheinen
|
||||
html = resp.data.decode('utf-8')
|
||||
assert 'Ungültige Eingabe' in html
|
||||
|
||||
def test_stats_login_required(client):
|
||||
resp = client.get('/stats')
|
||||
assert resp.status_code == 200
|
||||
assert b'Dashboard Login' in resp.data
|
||||
assert b'Dashboard Login' in resp.data
|
||||
|
||||
def test_werktage_berechnung(client):
|
||||
from numpy import busday_count
|
||||
from datetime import date, timedelta
|
||||
start = '2024-01-01'
|
||||
end = '2024-03-01'
|
||||
expected = busday_count(date.fromisoformat(start), date.fromisoformat(end) + timedelta(days=1))
|
||||
resp = client.post('/', data={
|
||||
'action': 'tage_werktage',
|
||||
'start1': start,
|
||||
'end1': end,
|
||||
'werktage': 'on'
|
||||
})
|
||||
assert resp.status_code == 200
|
||||
assert b'Anzahl der Werktage' in resp.data
|
||||
assert f': {expected}'.encode() in resp.data
|
Reference in New Issue
Block a user