58 lines
1.4 KiB
Python
58 lines
1.4 KiB
Python
"""Test fixtures."""
|
|
from builtins import super
|
|
|
|
import pytest
|
|
from napalm.base.test import conftest as parent_conftest
|
|
|
|
from napalm.base.test.double import BaseTestDouble
|
|
|
|
from napalm_vyos import vyos
|
|
|
|
|
|
@pytest.fixture(scope='class')
|
|
def set_device_parameters(request):
|
|
"""Set up the class."""
|
|
def fin():
|
|
request.cls.device.close()
|
|
request.addfinalizer(fin)
|
|
|
|
request.cls.driver = vyos.VyOSDriver
|
|
request.cls.patched_driver = PatchedVyOSDriver
|
|
request.cls.vendor = 'vyos'
|
|
parent_conftest.set_device_parameters(request)
|
|
|
|
|
|
def pytest_generate_tests(metafunc):
|
|
"""Generate test cases dynamically."""
|
|
parent_conftest.pytest_generate_tests(metafunc, __file__)
|
|
|
|
|
|
class PatchedVyOSDriver(vyos.VyOSDriver):
|
|
"""Patched VyOS Driver."""
|
|
|
|
def __init__(self, hostname, username, password, timeout=60, optional_args=None):
|
|
super().__init__(hostname, username, password, timeout, optional_args)
|
|
|
|
self.patched_attrs = ['device']
|
|
self.device = FakeVyOSDevice()
|
|
|
|
def close(self):
|
|
pass
|
|
|
|
def is_alive(self):
|
|
return {
|
|
'is_alive': True # In testing everything works..
|
|
}
|
|
|
|
def open(self):
|
|
pass
|
|
|
|
|
|
class FakeVyOSDevice(BaseTestDouble):
|
|
"""VyOS device test double."""
|
|
|
|
def send_command(self, command, **kwargs):
|
|
filename = '{}.text'.format(self.sanitize_text(command))
|
|
full_path = self.find_file(filename)
|
|
return self.read_txt_file(full_path)
|