diff --git a/tests/blueprints/test_control.py b/tests/blueprints/test_control.py new file mode 100644 index 00000000..067f90ea --- /dev/null +++ b/tests/blueprints/test_control.py @@ -0,0 +1,58 @@ +import pytest + +from tests.assertions import TestClient + +pytestmark = pytest.mark.usefixtures("user_logged_in") + + +@pytest.fixture(scope="module") +def client(module_test_client) -> TestClient: + return module_test_client + + +@pytest.mark.parametrize( + "ip_responses", + [ + ("1.1", "die IP scheint keine valide IP Adresse zu sein"), + ("0z:80:41:ae:fd:7e", "die IP scheint keine valide IP Adresse zu sein"), + ("0+:80:41:ae:fd:7e", "die IP scheint keine valide IP Adresse zu sein"), + ("awda ssfsfwa", "die IP scheint keine valide IP Adresse zu sein"), + ("a", "die IP scheint keine valide IP Adresse zu sein"), + ("ab", "die IP scheint keine valide IP Adresse zu sein"), + ("1000", "die IP scheint keine valide IP Adresse zu sein"), + ("1.6.7.","die IP scheint keine valide IP Adresse zu sein"), + ("192.169.10.1", "die angegebene IP gehört nicht zu deinem Subnetz") + ], + ) +def test_invalid_ip(client, ip_responses): + resp = client.post("/control/ip",data={"ip_address": ip_responses[0]}) + assert resp.status_code == 200 + assert ip_responses[1] in resp.data.decode("UTF-8") + + +def test_valid_ip(client): + for i in range(1,254): + ip = "192.168.10." + str(i) + resp = client.post("/control/ip", data={"ip_address": ip}) + assert resp.status_code == 200 + assert "" == resp.data.decode("UTF-8") + + +@pytest.mark.parametrize( + "port", + [ + ("1.99", "der Port muss eine Nummer sein"), + ("0z:80:41:ae:fd:7e", "der Port muss eine Nummer sein"), + ("awda ssfsfwa", "der Port muss eine Nummer sein"), + ("a", "der Port muss eine Nummer sein"), + ("ab", "der Port muss eine Nummer sein"), + ("0", "der Port muss größer als 0 sein"), + ("-10", "der Port muss eine Nummer sein"), + ("65536", "der Port muss kleiner als 65536 sein"), + ("65735", "der Port muss kleiner als 65536 sein") + ], + ) +def test_invalid_port(client, port): + resp = client.post("/control/port", data={"port": port[0]}) + assert resp.status_code == 200 + assert port[1] in resp.data.decode("UTF-8") \ No newline at end of file