mirror of
https://github.com/napalm-automation-community/napalm-vyos.git
synced 2026-02-28 02:44:51 +00:00
NAPALM Vyos Driver
This commit is contained in:
80
test/unit/TestDriver.py
Normal file
80
test/unit/TestDriver.py
Normal file
@@ -0,0 +1,80 @@
|
||||
# Copyright 2016 Dravetech AB. All rights reserved.
|
||||
#
|
||||
# The contents of this file are licensed under the Apache License, Version 2.0
|
||||
# (the "License"); you may not use this file except in compliance with the
|
||||
# License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations under
|
||||
# the License.
|
||||
|
||||
"""Tests."""
|
||||
|
||||
import unittest
|
||||
|
||||
from napalm_skeleton import skeleton
|
||||
from napalm_base.test.base import TestConfigNetworkDriver, TestGettersNetworkDriver
|
||||
import json
|
||||
|
||||
|
||||
class TestConfigDriver(unittest.TestCase, TestConfigNetworkDriver):
|
||||
"""Group of tests that test Configuration related methods."""
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
"""Run before starting the tests."""
|
||||
hostname = '127.0.0.1'
|
||||
username = 'vagrant'
|
||||
password = 'vagrant'
|
||||
cls.vendor = 'skeleton'
|
||||
|
||||
optional_args = {'port': 12443, }
|
||||
cls.device = skeleton.SkeletonDriver(hostname, username, password, timeout=60,
|
||||
optional_args=optional_args)
|
||||
cls.device.open()
|
||||
|
||||
cls.device.load_replace_candidate(filename='%s/initial.conf' % cls.vendor)
|
||||
cls.device.commit_config()
|
||||
|
||||
|
||||
class TestGetterDriver(unittest.TestCase, TestGettersNetworkDriver):
|
||||
"""Group of tests that test getters."""
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
"""Run before starting the tests."""
|
||||
cls.mock = True
|
||||
|
||||
hostname = '127.0.0.1'
|
||||
username = 'vagrant'
|
||||
password = 'vagrant'
|
||||
cls.vendor = 'skeleton'
|
||||
|
||||
optional_args = {'port': 12443, }
|
||||
cls.device = skeleton.SkeletonDriver(hostname, username, password, timeout=60,
|
||||
optional_args=optional_args)
|
||||
|
||||
if cls.mock:
|
||||
cls.device.device = FakeDevice()
|
||||
else:
|
||||
cls.device.open()
|
||||
|
||||
|
||||
class FakeDevice:
|
||||
"""Test double."""
|
||||
|
||||
@staticmethod
|
||||
def read_json_file(filename):
|
||||
"""Return the content of a file with content formatted as json."""
|
||||
with open(filename) as data_file:
|
||||
return json.load(data_file)
|
||||
|
||||
@staticmethod
|
||||
def read_txt_file(filename):
|
||||
"""Return the content of a file."""
|
||||
with open(filename) as data_file:
|
||||
return data_file.read()
|
||||
1
test/unit/skeleton/initial.conf
Normal file
1
test/unit/skeleton/initial.conf
Normal file
@@ -0,0 +1 @@
|
||||
Initial configuration
|
||||
1
test/unit/skeleton/merge_good.conf
Normal file
1
test/unit/skeleton/merge_good.conf
Normal file
@@ -0,0 +1 @@
|
||||
Some changes that will be merged while testing
|
||||
1
test/unit/skeleton/merge_good.diff
Normal file
1
test/unit/skeleton/merge_good.diff
Normal file
@@ -0,0 +1 @@
|
||||
The diff when merging `merged_good.conf`
|
||||
2
test/unit/skeleton/merge_typo.conf
Normal file
2
test/unit/skeleton/merge_typo.conf
Normal file
@@ -0,0 +1,2 @@
|
||||
Some changes that will be merge while testing. Should contain a typo or something that triggers
|
||||
an error during the load/commmit phase
|
||||
0
test/unit/skeleton/mock_data/.placeholder
Normal file
0
test/unit/skeleton/mock_data/.placeholder
Normal file
1
test/unit/skeleton/new_good.conf
Normal file
1
test/unit/skeleton/new_good.conf
Normal file
@@ -0,0 +1 @@
|
||||
A full new configuration. It will be used to test the replace operation
|
||||
1
test/unit/skeleton/new_good.diff
Normal file
1
test/unit/skeleton/new_good.diff
Normal file
@@ -0,0 +1 @@
|
||||
A diff between `initial.conf` and `new_good.conf`
|
||||
2
test/unit/skeleton/new_typo.conf
Normal file
2
test/unit/skeleton/new_typo.conf
Normal file
@@ -0,0 +1,2 @@
|
||||
A full new configuration. However, it should contain a typo or something that triggers an error
|
||||
during commit/load phase.
|
||||
Reference in New Issue
Block a user