|
| 1 | +from os import path |
| 2 | + |
1 | 3 | import pytest |
2 | | -import collections |
3 | 4 |
|
4 | | -from os import path |
5 | | -from shconfparser.reader import Reader |
6 | | -from shconfparser.shsplit import ShowSplit |
7 | 5 | from shconfparser.parser import Parser |
8 | 6 |
|
9 | 7 |
|
10 | 8 | class TestParser: |
11 | 9 |
|
12 | 10 | @pytest.fixture |
13 | 11 | def setup(self): |
14 | | - file_path = path.abspath('data/shcommands.txt') |
| 12 | + file_path = path.abspath("data/shcommands.txt") |
15 | 13 | p = Parser() |
16 | 14 | file_data = p.read(file_path) |
17 | 15 | p.split(file_data) |
18 | 16 | yield p |
19 | 17 |
|
20 | 18 | def test_data_parser(self, setup): |
21 | 19 | data = setup.s.shcmd_dict |
22 | | - assert 'version' in data |
23 | | - result = setup.parse_data(data['version']) |
| 20 | + assert "version" in data |
| 21 | + result = setup.parse_data(data["version"]) |
24 | 22 | assert result != {} |
25 | | - assert 'R1 uptime is 10 minutes' in result |
| 23 | + assert "R1 uptime is 10 minutes" in result |
26 | 24 |
|
27 | 25 | def test_tree_parser(self, setup): |
28 | 26 | data = setup.s.shcmd_dict |
29 | | - assert 'running' in data |
30 | | - result = setup.parse_tree(data['running']) |
| 27 | + assert "running" in data |
| 28 | + result = setup.parse_tree(data["running"]) |
31 | 29 | assert result != {} |
32 | | - assert 'line vty 0 4' in result |
| 30 | + assert "line vty 0 4" in result |
33 | 31 |
|
34 | 32 | def test_table_parser(self, setup): |
35 | 33 | data = setup.s.shcmd_dict |
36 | | - assert 'cdp_neighbors' in data |
37 | | - header = ['Device ID', 'Local Intrfce', 'Holdtme', 'Capability', 'Platform', 'Port ID'] |
38 | | - result = setup.parse_table(data['cdp_neighbors'], header) |
| 34 | + assert "cdp_neighbors" in data |
| 35 | + header = ["Device ID", "Local Intrfce", "Holdtme", "Capability", "Platform", "Port ID"] |
| 36 | + result = setup.parse_table(data["cdp_neighbors"], header) |
39 | 37 | assert result != [] |
40 | 38 | assert type(result[0]) is dict |
41 | | - assert 'Device ID' in result[0] |
42 | | - assert 'R2' == result[0]['Device ID'] |
| 39 | + assert "Device ID" in result[0] |
| 40 | + assert result[0]["Device ID"] == "R2" |
43 | 41 |
|
44 | 42 | def test_table_parser_multiple_line(self, setup): |
45 | | - data = {'cdp_neighbors': ['R1#show cdp neighbors', |
46 | | - 'Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge', |
47 | | - 'S - Switch, H - Host, I - IGMP, r - Repeater', '', |
48 | | - 'Device ID Local Intrfce Holdtme Capability Platform Port ID', |
49 | | - 'ajskdjfajfajlsfjabcdefgh', |
50 | | - ' Fas 0/0 164 R S I 3725 Fas 0/0', |
51 | | - 'R1#']} |
52 | | - assert 'cdp_neighbors' in data |
53 | | - header = ['Device ID', 'Local Intrfce', 'Holdtme', 'Capability', 'Platform', 'Port ID'] |
54 | | - result = setup.parse_table(data['cdp_neighbors'], header) |
| 43 | + data = { |
| 44 | + "cdp_neighbors": [ |
| 45 | + "R1#show cdp neighbors", |
| 46 | + "Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge", |
| 47 | + "S - Switch, H - Host, I - IGMP, r - Repeater", |
| 48 | + "", |
| 49 | + "Device ID Local Intrfce Holdtme Capability Platform Port ID", |
| 50 | + "ajskdjfajfajlsfjabcdefgh", |
| 51 | + " Fas 0/0 164 R S I 3725 Fas 0/0", |
| 52 | + "R1#", |
| 53 | + ] |
| 54 | + } |
| 55 | + assert "cdp_neighbors" in data |
| 56 | + header = ["Device ID", "Local Intrfce", "Holdtme", "Capability", "Platform", "Port ID"] |
| 57 | + result = setup.parse_table(data["cdp_neighbors"], header) |
55 | 58 | assert result != [] |
56 | 59 | assert type(result[0]) is dict |
57 | | - assert 'Device ID' in result[0] |
58 | | - assert '3725' == result[0]['Platform'] |
| 60 | + assert "Device ID" in result[0] |
| 61 | + assert result[0]["Platform"] == "3725" |
59 | 62 |
|
60 | 63 | def test_table_parser_header_mismatch(self, setup): |
61 | 64 | data = setup.s.shcmd_dict |
62 | | - assert 'cdp_neighbors' in data |
63 | | - header = [' Device ID', 'Local Intrfce', 'Holdtme', 'Capability', 'Platform', 'Port ID'] |
64 | | - result = setup.parse_table(data['cdp_neighbors'], header) |
65 | | - assert result == None |
| 65 | + assert "cdp_neighbors" in data |
| 66 | + header = [" Device ID", "Local Intrfce", "Holdtme", "Capability", "Platform", "Port ID"] |
| 67 | + result = setup.parse_table(data["cdp_neighbors"], header) |
| 68 | + assert result is None |
66 | 69 | # TODO: need to check log message |
67 | 70 |
|
68 | 71 | def test_dump(self, setup): |
69 | 72 | data = setup.s.shcmd_dict |
70 | 73 | assert type(setup.dump(data)) is str |
71 | | - |
|
0 commit comments