diff --git a/test/test_netconf_validation.py b/test/test_netconf_validation.py index 3eca33cf7840f6e524bc6e8b76a4a7fd91fab007..ecbc11221bb24886ba19c9c3e881b68726a114c6 100644 --- a/test/test_netconf_validation.py +++ b/test/test_netconf_validation.py @@ -1,50 +1,23 @@ +import glob import os +import re + import pytest from lxml import etree from inventory_provider.juniper import validate_netconf_config +TEST_DATA_DIRNAME = os.path.join( + os.path.dirname(__file__), 'data') -@pytest.mark.parametrize('hostname', [ - 'mx1.ams.nl.geant.net', - 'mx1.ath2.gr.geant.net', - 'mx1.buc.ro.geant.net', - 'mx1.bud.hu.geant.net', - 'mx1.dub.ie.geant.net', - 'mx1.dub2.ie.geant.net', - 'mx1.fra.de.geant.net', - 'mx1.gen.ch.geant.net', - 'mx1.ham.de.geant.net', - 'mx1.kau.lt.geant.net', - 'mx1.lis.pt.geant.net', - 'mx1.lon.uk.geant.net', - 'mx1.lon2.uk.geant.net', - 'mx1.mad.es.geant.net', - 'mx1.mar.fr.geant.net', - 'mx1.mil2.it.geant.net', - 'mx1.par.fr.geant.net', - 'mx1.poz.pl.geant.net', - 'mx1.pra.cz.geant.net', - 'mx1.sof.bg.geant.net', - 'mx1.tal.ee.geant.net', - 'mx1.vie.at.geant.net', - 'mx2.ath.gr.geant.net', - 'mx2.bra.sk.geant.net', - 'mx2.bru.be.geant.net', - 'mx2.kau.lt.geant.net', - 'mx2.lis.pt.geant.net', - 'mx2.lju.si.geant.net', - 'mx2.rig.lv.geant.net', - 'mx2.tal.ee.geant.net', - 'mx2.zag.hr.geant.net', - 'qfx.fra.de.geant.net', - 'qfx.lon2.uk.geant.net', - 'qfx.par.fr.geant.net' -]) -def test_netconf_docs(hostname): - filename = os.path.join( - os.path.dirname(__file__), - 'data', - hostname + '-netconf.xml') +AVAILABLE_NETCONF_HOSTS = [] +for fn in glob.glob(os.path.join(TEST_DATA_DIRNAME, '*-netconf.xml')): + m = re.match('(.*)-netconf.xml', os.path.basename(fn)) + assert m # sanity + AVAILABLE_NETCONF_HOSTS.append(m.group(1)) + +@pytest.mark.parametrize('hostname', AVAILABLE_NETCONF_HOSTS) +def test_netconf_docs(hostname): + filename = os.path.join(TEST_DATA_DIRNAME, f'{hostname}-netconf.xml') doc = etree.parse(filename) validate_netconf_config(doc)