NAPALM Vyos Driver

This commit is contained in:
Pieprzycki Piotr
2016-11-01 11:29:35 +01:00
parent 8eef0f24b2
commit b4881c4acb
24 changed files with 1501 additions and 29 deletions

80
test/unit/TestDriver.py Normal file
View 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()

View File

@@ -0,0 +1 @@
Initial configuration

View File

@@ -0,0 +1 @@
Some changes that will be merged while testing

View File

@@ -0,0 +1 @@
The diff when merging `merged_good.conf`

View 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

View File

@@ -0,0 +1 @@
A full new configuration. It will be used to test the replace operation

View File

@@ -0,0 +1 @@
A diff between `initial.conf` and `new_good.conf`

View 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.