Accordion-Logik und Panel-Index korrigiert, kombinierte Plus/Minus-Funktion, Tests aktualisiert
This commit is contained in:
102
test_app.py
102
test_app.py
@@ -13,15 +13,105 @@ def test_homepage(client):
|
||||
assert resp.status_code == 200
|
||||
assert b'Elpatrons Datumsrechner' in resp.data
|
||||
|
||||
def test_tage_berechnung(client):
|
||||
def test_plusminus_tage(client):
|
||||
resp = client.post('/', data={
|
||||
'action': 'tage_werktage',
|
||||
'start1': '2024-01-01',
|
||||
'end1': '2024-01-10'
|
||||
'action': 'plusminus',
|
||||
'datum_pm': '2024-01-10',
|
||||
'anzahl_pm': '5',
|
||||
'einheit_pm': 'tage',
|
||||
'richtung_pm': 'add'
|
||||
})
|
||||
assert resp.status_code == 200
|
||||
assert b'Anzahl der Tage' in resp.data
|
||||
assert b'9' in resp.data
|
||||
assert b'plus 5 Tage' in resp.data
|
||||
assert b'15.01.2024' in resp.data
|
||||
# Subtraktion
|
||||
resp = client.post('/', data={
|
||||
'action': 'plusminus',
|
||||
'datum_pm': '2024-01-10',
|
||||
'anzahl_pm': '5',
|
||||
'einheit_pm': 'tage',
|
||||
'richtung_pm': 'sub'
|
||||
})
|
||||
assert b'minus 5 Tage' in resp.data
|
||||
assert b'05.01.2024' in resp.data
|
||||
|
||||
def test_plusminus_werktage(client):
|
||||
from numpy import busday_offset
|
||||
from datetime import datetime
|
||||
start = '2024-01-10'
|
||||
anzahl = 5
|
||||
# Addition
|
||||
result = busday_offset(datetime.strptime(start, '%Y-%m-%d').date(), anzahl, roll='forward')
|
||||
result_str = datetime.strptime(str(result), '%Y-%m-%d').strftime('%d.%m.%Y')
|
||||
resp = client.post('/', data={
|
||||
'action': 'plusminus',
|
||||
'datum_pm': start,
|
||||
'anzahl_pm': str(anzahl),
|
||||
'einheit_pm': 'tage',
|
||||
'richtung_pm': 'add',
|
||||
'werktage_pm': 'on'
|
||||
})
|
||||
assert resp.status_code == 200
|
||||
assert b'plus 5 Werktage' in resp.data
|
||||
assert result_str.encode() in resp.data
|
||||
# Subtraktion
|
||||
result = busday_offset(datetime.strptime(start, '%Y-%m-%d').date(), -anzahl, roll='forward')
|
||||
result_str = datetime.strptime(str(result), '%Y-%m-%d').strftime('%d.%m.%Y')
|
||||
resp = client.post('/', data={
|
||||
'action': 'plusminus',
|
||||
'datum_pm': start,
|
||||
'anzahl_pm': str(anzahl),
|
||||
'einheit_pm': 'tage',
|
||||
'richtung_pm': 'sub',
|
||||
'werktage_pm': 'on'
|
||||
})
|
||||
assert b'minus 5 Werktage' in resp.data
|
||||
assert result_str.encode() in resp.data
|
||||
|
||||
def test_plusminus_wochen_monate(client):
|
||||
from datetime import datetime, timedelta
|
||||
from dateutil.relativedelta import relativedelta
|
||||
start = '2024-01-10'
|
||||
# Wochen addieren
|
||||
resp = client.post('/', data={
|
||||
'action': 'plusminus',
|
||||
'datum_pm': start,
|
||||
'anzahl_pm': '2',
|
||||
'einheit_pm': 'wochen',
|
||||
'richtung_pm': 'add'
|
||||
})
|
||||
assert b'plus 2 Wochen' in resp.data
|
||||
assert b'24.01.2024' in resp.data
|
||||
# Wochen subtrahieren
|
||||
resp = client.post('/', data={
|
||||
'action': 'plusminus',
|
||||
'datum_pm': start,
|
||||
'anzahl_pm': '2',
|
||||
'einheit_pm': 'wochen',
|
||||
'richtung_pm': 'sub'
|
||||
})
|
||||
assert b'minus 2 Wochen' in resp.data
|
||||
assert b'27.12.2023' in resp.data
|
||||
# Monate addieren
|
||||
resp = client.post('/', data={
|
||||
'action': 'plusminus',
|
||||
'datum_pm': start,
|
||||
'anzahl_pm': '2',
|
||||
'einheit_pm': 'monate',
|
||||
'richtung_pm': 'add'
|
||||
})
|
||||
assert b'plus 2 Monate' in resp.data
|
||||
assert b'10.03.2024' in resp.data
|
||||
# Monate subtrahieren
|
||||
resp = client.post('/', data={
|
||||
'action': 'plusminus',
|
||||
'datum_pm': start,
|
||||
'anzahl_pm': '2',
|
||||
'einheit_pm': 'monate',
|
||||
'richtung_pm': 'sub'
|
||||
})
|
||||
assert b'minus 2 Monate' in resp.data
|
||||
assert b'10.11.2023' in resp.data
|
||||
|
||||
def test_xss_protection(client):
|
||||
# Versuche ein Skript einzuschleusen
|
||||
|
Reference in New Issue
Block a user