diff --git a/tests/interface/conftest.py b/tests/interface/conftest.py new file mode 100644 index 0000000..1118a91 --- /dev/null +++ b/tests/interface/conftest.py @@ -0,0 +1,41 @@ +import tempfile + +import pytest +import scenario +from interface_tester import InterfaceTester +from ops.pebble import Layer, ServiceStatus + +from charm import NRFOperatorCharm + + +@pytest.fixture +def interface_tester(interface_tester: InterfaceTester): + with tempfile.TemporaryDirectory() as tempdir: + config_mount = scenario.Mount( + location="/etc/nrf/", + src=tempdir, + ) + certs_mount = scenario.Mount( + location="/support/TLS/", + src=tempdir, + ) + container = scenario.Container( + name="nrf", + can_connect=True, + layers={"nrf": Layer({"services": {"nrf": {}}})}, + service_status={ + "nrf": ServiceStatus.ACTIVE, + }, + mounts={ + "config": config_mount, + "certs": certs_mount, + }, + ) + interface_tester.configure( + charm_type=NRFOperatorCharm, + state_template=scenario.State( + leader=True, + containers=[container], + ), + ) + yield interface_tester diff --git a/tox.ini b/tox.ini index 2834ebd..c2b5a79 100644 --- a/tox.ini +++ b/tox.ini @@ -8,10 +8,11 @@ envlist = lint, static, unit [vars] src_path = {toxinidir}/src/ +interface_test_path = {toxinidir}/tests/interface/ unit_test_path = {toxinidir}/tests/unit/ integration_test_path = {toxinidir}/tests/integration/ lib_path = {toxinidir}/lib/charms/sdcore_nrf_k8s/v0/ -all_path = {[vars]src_path} {[vars]unit_test_path} {[vars]integration_test_path} {[vars]lib_path} +all_path = {[vars]src_path} {[vars]unit_test_path} {[vars]integration_test_path} {[vars]lib_path} {[vars]interface_test_path} [testenv] setenv =