From f49a794584c8f5dcdd60ffc0ca65a559c441ca6c Mon Sep 17 00:00:00 2001
From: Erik Reid <erik.reid@geant.org>
Date: Sun, 23 Dec 2018 19:07:22 +0100
Subject: [PATCH] parameterized router hostnames

---
 test/conftest.py          | 16 ++++++++++++++--
 test/test_netconf_data.py |  7 ++-----
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/test/conftest.py b/test/conftest.py
index 1a9764c3..6805738f 100644
--- a/test/conftest.py
+++ b/test/conftest.py
@@ -111,13 +111,17 @@ def data_config_filename(tmp_dir_name):
     return filename
 
 
-@pytest.fixture
-def data_config():
+def _tmp_data_config():
     with tempfile.TemporaryDirectory() as tmpdir:
         with open(data_config_filename(tmpdir)) as f:
             return config.load(f)
 
 
+@pytest.fixture
+def data_config():
+    return _tmp_data_config()
+
+
 @pytest.fixture
 def cached_test_data():
     filename = os.path.join(
@@ -145,3 +149,11 @@ def client(app_config):
     os.environ["SETTINGS_FILENAME"] = app_config
     with inventory_provider.create_app().test_client() as c:
         yield c
+
+
+def pytest_generate_tests(metafunc):
+    params = _tmp_data_config()
+    metafunc.parametrize(
+        "router",
+        list([r['hostname'] for r in params['routers']])
+    )
diff --git a/test/test_netconf_data.py b/test/test_netconf_data.py
index 5e628ce1..46185b4d 100644
--- a/test/test_netconf_data.py
+++ b/test/test_netconf_data.py
@@ -23,12 +23,9 @@ class MockedJunosDevice(object):
         pass
 
 
-def test_query_doc_and_validate(mocker, data_config):
+def test_query_doc_and_validate(mocker, router, data_config):
     mocker.patch(
         'inventory_provider.netconf.Device',
         MockedJunosDevice)
-
-    for r in data_config['routers']:
-        doc = netconf.load_config(r['hostname'], data_config['ssh'])
-
+    netconf.load_config(router, data_config['ssh'])
 
-- 
GitLab