81 lines
2.5 KiB
Python
81 lines
2.5 KiB
Python
# 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()
|