summaryrefslogtreecommitdiffstats
path: root/scripts/automation/regression/functional_tests/platform_cmd_cache_test.py
blob: 0be212806c255f6063c644113c6425288f127359 (plain)
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
#!/router/bin/python

from platform_cmd_link import *
import functional_general_test
from nose.tools import assert_equal
from nose.tools import assert_not_equal


class CCommandCache_Test(functional_general_test.CGeneralFunctional_Test):

    def setUp(self):
        self.cache = CCommandCache()
        self.cache.add('IF', "ip nbar protocol-discovery", 'GigabitEthernet0/0/1')
        self.cache.add('IF', "ip nbar protocol-discovery", 'GigabitEthernet0/0/2')
        self.cache.add('conf', "arp 1.1.1.1 0000.0001.0000 arpa")
        self.cache.add('conf', "arp 1.1.2.1 0000.0002.0000 arpa")
        self.cache.add('exec', "show ip nbar protocol-discovery stats packet-count")

    def test_add(self):
        assert_equal(self.cache.cache['IF'],
            {'GigabitEthernet0/0/1' : ['ip nbar protocol-discovery'],
             'GigabitEthernet0/0/2' : ['ip nbar protocol-discovery']
            })
        assert_equal(self.cache.cache['CONF'],
            ["arp 1.1.1.1 0000.0001.0000 arpa",
             "arp 1.1.2.1 0000.0002.0000 arpa"]
            )
        assert_equal(self.cache.cache['EXEC'],
            ["show ip nbar protocol-discovery stats packet-count"])

    def test_dump_config (self):
        import sys
        from io import StringIO, BytesIO
        saved_stdout = sys.stdout
        try:
            out = BytesIO() if sys.version_info < (3,0) else StringIO()
            sys.stdout = out
            self.cache.dump_config()
            output = out.getvalue().strip()
            assert_equal(output, 
                "configure terminal\ninterface GigabitEthernet0/0/1\nip nbar protocol-discovery\ninterface GigabitEthernet0/0/2\nip nbar protocol-discovery\nexit\narp 1.1.1.1 0000.0001.0000 arpa\narp 1.1.2.1 0000.0002.0000 arpa\nexit\nshow ip nbar protocol-discovery stats packet-count"
                )
        finally:
            sys.stdout = saved_stdout

    def test_get_config_list (self):
        assert_equal(self.cache.get_config_list(),
            ["configure terminal", "interface GigabitEthernet0/0/1", "ip nbar protocol-discovery", "interface GigabitEthernet0/0/2", "ip nbar protocol-discovery", "exit", "arp 1.1.1.1 0000.0001.0000 arpa", "arp 1.1.2.1 0000.0002.0000 arpa", "exit", "show ip nbar protocol-discovery stats packet-count"]
            )

    def test_clear_cache (self):
        self.cache.clear_cache()
        assert_equal(self.cache.cache,
            {"IF"   : {},
             "CONF" : [],
             "EXEC" : []}
            )

    def tearDown(self):
        self.cache.clear_cache()