1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
__author__ = "Rick Sherman, Nitin Kumar"
__credits__ = "Jeremy Schulman"
import unittest
import nose2
from jnpr.junos.factory import FactoryLoader
from unittest.mock import patch
class TestFactoryLoader(unittest.TestCase):
def setUp(self):
self.fl = FactoryLoader()
self.fl.catalog = {
"RouteTable": {
"item": "route-table/rt",
"rpc": "get-route-information",
"args_key": "destination",
"key": "rt-destination",
"view": "RouteTableView",
}
}
self.fl._catalog_dict = {
"RouteTableView": {
"groups": {"entry": "rt-entry"},
"fields_entry": {
"via": "nh/via | nh/nh-local-interface",
"age": {"age/@seconds": "int"},
"nexthop": "nh/to",
"protocol": "protocol-name",
},
"extends": "test",
}
}
def test_FactoryLoader__build_optable(self):
self.assertEqual(
self.fl._build_optable("RouteTable"), self.fl.catalog["RouteTable"]
)
def test_FactoryLoader__build_cfgtable(self):
self.assertEqual(
self.fl._build_cfgtable("RouteTable"), self.fl.catalog["RouteTable"]
)
@patch("jnpr.junos.factory.factory_loader._VIEW")
def test_FactoryLoader__build_view(self, mock_view):
mock_view.return_value = type("test", (object,), {})
self.assertEqual(
self.fl._build_view("RouteTableView"), self.fl.catalog["RouteTableView"]
)
def test_FactoryLoader__fieldfunc_True(self):
fn = self.fl._fieldfunc_True("test")
self.assertTrue(fn("test"))
def test_FactoryLoader__fieldfunc_True_fail(self):
# Assert that false is returned if value not found
fn = self.fl._fieldfunc_True("test")
self.assertFalse(fn("nope"))
def test_FactoryLoader__fieldfunc_True_regex(self):
fn = self.fl._fieldfunc_True("regex(this|test)")
self.assertTrue(fn("test"))
def test_FactoryLoader__fieldfunc_True_regex_fail(self):
# Assert that false is returned if value not found
fn = self.fl._fieldfunc_True("regex(this|test)")
self.assertFalse(fn("nope"))
def test_FactoryLoader__fieldfunc_False(self):
fn = self.fl._fieldfunc_False("test")
self.assertFalse(fn("test"))
def test_FactoryLoader__fieldfunc_False_fail(self):
# Assert that true is returned if value not found
fn = self.fl._fieldfunc_False("test")
self.assertTrue(fn("nope"))
def test_FactoryLoader__fieldfunc_False_regex(self):
fn = self.fl._fieldfunc_False("regex(this|test)")
self.assertFalse(fn("test"))
def test_FactoryLoader__fieldfunc_False_regex_fail(self):
# Assert that true is returned if value not found
fn = self.fl._fieldfunc_False("regex(this|test)")
self.assertTrue(fn("nope"))
def test_FactoryLoader__add_dictfield_RuntimeError(self):
self.assertRaises(
RuntimeError,
self.fl._add_dictfield,
"testing",
"age",
{"age/@seconds": "test"},
{},
)
def test_FactoryLoader__add_dictfield_ValueError(self):
self.assertRaises(
ValueError,
self.fl._add_dictfield,
"testing",
"age",
{"age/@seconds": "test=test"},
{},
)
|