diff --git a/tests/ft/app/test_azure.py b/tests/ft/app/test_azure.py index 377b5d733..036080fc7 100644 --- a/tests/ft/app/test_azure.py +++ b/tests/ft/app/test_azure.py @@ -123,6 +123,7 @@ def conf_base(mocker): "host": HUB, "auth": 0, "sas": SAS, + "ca": mocker.ca_base64, } @@ -174,6 +175,13 @@ def conf_bad_fmt(conf_base): } +@pytest.fixture(scope="function") +def conf_no_ca(conf_base): + conf = {**conf_base} + del conf["ca"] + return conf + + @pytest.fixture(scope="function") def conf_ssl_bad_ca(conf_ssl): return { @@ -230,6 +238,7 @@ class TestAzure: "conf_bad_id", "conf_bad_qos", "conf_bad_fmt", + "conf_no_ca", "conf_ssl_bad_ca", "conf_ssl_no_cert", "conf_ssl_bad_cert", diff --git a/tests/ft/app/test_mqtt.py b/tests/ft/app/test_mqtt.py index a1edd97a0..4b8da0081 100644 --- a/tests/ft/app/test_mqtt.py +++ b/tests/ft/app/test_mqtt.py @@ -71,7 +71,7 @@ @pytest.fixture(autouse=True, scope="class") -def mqtt_node(): +def mqtt_node(class_setup_and_teardown): otel_p = subprocess.Popen( ["python3", "otel_server.py", f'{otel_port}'], stderr=subprocess.PIPE, cwd="simulator") api.add_node_check(NODE, "MQTT") @@ -184,6 +184,7 @@ def conf_emqx_ssl(conf_base, mocker): "host": "broker.emqx.io", "port": 8883, "ssl": True, + "ca": mocker.ca_base64, } @@ -262,6 +263,15 @@ def conf_bad_fmt(conf_base): } +@pytest.fixture(scope="function") +def conf_ssl_no_ca(conf_base, mocker): + return { + **conf_base, + "port": mocker.ssl_port, + "ssl": True, + } + + @pytest.fixture(scope="function") def conf_ssl_bad_ca(conf_ssl1): return { @@ -374,6 +384,7 @@ class TestMQTT: "conf_bad_id", "conf_bad_qos", "conf_bad_fmt", + "conf_ssl_no_ca", "conf_ssl_bad_ca", "conf_ssl_bad_cert", "conf_ssl_no_key", diff --git a/tests/ft/conftest.py b/tests/ft/conftest.py index da83e43fa..0b6bb0033 100644 --- a/tests/ft/conftest.py +++ b/tests/ft/conftest.py @@ -1,5 +1,11 @@ +import inspect + import pytest +import neuron.api as api +import neuron.config as config +import neuron.process as process + def pytest_addoption(parser): parser.addoption( @@ -10,3 +16,37 @@ def pytest_addoption(parser): @pytest.fixture(autouse=True, scope="session") def get_envx(request): return request.config.getoption("--env") + + +def _refresh_default_jwt(token): + old_jwt = config.default_jwt + new_jwt = f"Bearer {token}" + + config.default_jwt = new_jwt + + for _, func in inspect.getmembers(api, inspect.isfunction): + defaults = func.__defaults__ + if defaults: + func.__defaults__ = tuple( + new_jwt if value == old_jwt else value for value in defaults + ) + + kwdefaults = func.__kwdefaults__ + if kwdefaults: + func.__kwdefaults__ = { + key: new_jwt if value == old_jwt else value + for key, value in kwdefaults.items() + } + + +@pytest.fixture(autouse=True, scope="session") +def init_default_jwt(): + process.remove_persistence() + neuron = process.NeuronProcess() + neuron.start() + + response = api.login() + assert 200 == response.status_code + _refresh_default_jwt(response.json()["token"]) + + neuron.stop() diff --git a/tests/ft/group/test_group.py b/tests/ft/group/test_group.py index c97ccb428..7c76d2696 100644 --- a/tests/ft/group/test_group.py +++ b/tests/ft/group/test_group.py @@ -48,7 +48,7 @@ def test_delete_group(self): @description(given="existent node", when="add group with interval < 100 under existent node", then="add failed") def test_add_group_wrong_interval(self): - response = api.add_group(node="modbus-tcp", group='group', interval=99) + response = api.add_group(node="modbus-tcp", group='group-bad-interval', interval=99) assert 400 == response.status_code assert NEU_ERR_GROUP_PARAMETER_INVALID == response.json()['error']