From 7d1b09eb2302545025d58f2257dd25fe2686af0e Mon Sep 17 00:00:00 2001 From: Guohan Lu Date: Sun, 21 Oct 2018 08:31:26 +0000 Subject: [PATCH] add --keeptb option to keep testbed after test Signed-off-by: Guohan Lu --- tests/conftest.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 3fa6d443b66b..fbd7a3817972 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -21,6 +21,8 @@ def ensure_system(cmd): def pytest_addoption(parser): parser.addoption("--dvsname", action="store", default=None, help="dvs name") + parser.addoption("--keeptb", action="store_true", default=False, + help="keep testbed after test") class AsicDbValidator(object): def __init__(self, dvs): @@ -127,7 +129,7 @@ def runcmd_async(self, cmd): return subprocess.Popen("ip netns exec %s %s" % (self.nsname, cmd), shell=True) class DockerVirtualSwitch(object): - def __init__(self, name=None): + def __init__(self, name=None, keeptb=False): self.basicd = ['redis-server', 'rsyslogd'] self.swssd = ['orchagent', @@ -147,7 +149,10 @@ def __init__(self, name=None): self.client = docker.from_env() self.ctn = None - self.cleanup = True + if keeptb: + self.cleanup = False + else: + self.cleanup = True if name != None: # get virtual switch container for ctn in self.client.containers.list(): @@ -556,7 +561,8 @@ def setReadOnlyAttr(self, obj, attr, val): @pytest.yield_fixture(scope="module") def dvs(request): name = request.config.getoption("--dvsname") - dvs = DockerVirtualSwitch(name) + keeptb = request.config.getoption("--keeptb") + dvs = DockerVirtualSwitch(name, keeptb) yield dvs if name == None: dvs.get_logs(request.module.__name__)