Add functional tests for verifying simulator services status 99/108199/3
authorBartek Grzybowski <b.grzybowski@partner.samsung.com>
Mon, 25 May 2020 13:25:15 +0000 (06:25 -0700)
committerMorgan Richomme <morgan.richomme@orange.com>
Mon, 25 May 2020 14:06:11 +0000 (14:06 +0000)
Status is verified after each lifecycle change for proper
subcommand action.

Change-Id: Ia1c0e1bce24ddf1ca2c805a420e4a0665412aedf
Issue-ID: INT-1577
Signed-off-by: Bartek Grzybowski <b.grzybowski@partner.samsung.com>
test/mocks/mass-pnf-sim/conftest.py
test/mocks/mass-pnf-sim/test_lifecycle.py
test/mocks/mass-pnf-sim/test_settings.py
test/mocks/mass-pnf-sim/tox.ini

index 3323440..2658133 100644 (file)
@@ -1,6 +1,7 @@
 import MassPnfSim
 import pytest
 from test_settings import * # pylint: disable=W0614
+from docker import from_env
 
 @pytest.fixture(scope="module")
 def parser():
@@ -36,3 +37,11 @@ def args_trigger_custom(parser):
 @pytest.fixture
 def args_clean(parser):
     return parser.parse_args(['clean'])
+
+@pytest.fixture
+def docker_containers():
+    docker_client = from_env()
+    container_list = []
+    for container in docker_client.containers.list():
+        container_list.append(container.attrs['Name'][1:])
+    return container_list
index dc1160c..581b022 100644 (file)
@@ -60,6 +60,13 @@ def test_bootstrap(args_bootstrap, parser, caplog):
         start_port += 2
         print(yml['ippnfsim'])
 
+def test_bootstrap_status(args_status, capfd):
+    MassPnfSim(args_status).status()
+    msg = capfd.readouterr()
+    for _ in range(SIM_INSTANCES):
+        assert 'Simulator containers are down' in msg.out
+        assert 'Simulator response' not in msg.out
+
 def test_start(args_start, caplog, capfd):
     MassPnfSim(args_start).start()
     msg = capfd.readouterr()
@@ -71,6 +78,15 @@ def test_start(args_start, caplog, capfd):
         assert 'Starting simulator containers' in msg.out
     caplog.clear()
 
+def test_start_status(args_status, docker_containers, capfd):
+    sleep(5) # Wait for the simulator to settle
+    MassPnfSim(args_status).status()
+    msg = capfd.readouterr()
+    for instance in range(SIM_INSTANCES):
+        assert '"simulatorStatus":"NOT RUNNING"' in msg.out
+        assert '"simulatorStatus":"RUNNING"' not in msg.out
+        assert f"{PNF_SIM_CONTAINER_NAME}{instance}" in docker_containers
+
 def test_start_idempotence(args_start, capfd):
     '''Verify start idempotence'''
     MassPnfSim(args_start).start()
@@ -79,7 +95,6 @@ def test_start_idempotence(args_start, capfd):
     assert 'Starting simulator containers' not in msg.out
 
 def test_trigger(args_trigger, caplog, capfd):
-    sleep(5) # Wait for the simulator to settle
     MassPnfSim(args_trigger).trigger()
     msg = capfd.readouterr()
     for instance in range(SIM_INSTANCES):
@@ -90,6 +105,15 @@ def test_trigger(args_trigger, caplog, capfd):
         assert 'Simulator started' in msg.out
     caplog.clear()
 
+def test_trigger_status(args_status, capfd):
+    MassPnfSim(args_status).status()
+    msg = capfd.readouterr()
+    for _ in range(SIM_INSTANCES):
+        assert '"simulatorStatus":"RUNNING"' in msg.out
+        assert '"simulatorStatus":"NOT RUNNING"' not in msg.out
+        assert 'Up' in msg.out
+        assert 'Exit' not in msg.out
+
 def test_trigger_idempotence(args_trigger, capfd):
     MassPnfSim(args_trigger).trigger()
     msg = capfd.readouterr()
index 990a915..a16046c 100644 (file)
@@ -4,3 +4,4 @@ IPFILESERVER = '127.0.0.1'
 TYPEFILESERVER = 'sftp'
 IPSTART = '10.11.0.1'
 INSTANCE_CONFIG = 'config/config.yml'
+PNF_SIM_CONTAINER_NAME = 'pnf-simulator-'
index aaa0d7a..afa5458 100644 (file)
@@ -6,6 +6,7 @@ basepython = python3
 deps =
     pytest
     pyyaml
+    docker
 commands = pytest -v
 
 [testenv:MassPnfSim-runtime]