import MassPnfSim
import pytest
from test_settings import * # pylint: disable=W0614
+from docker import from_env
@pytest.fixture(scope="module")
def 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
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()
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()
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):
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()