Skip to content
This repository has been archived by the owner on Sep 17, 2019. It is now read-only.

Commit

Permalink
Add requested value to the validate report (#291)
Browse files Browse the repository at this point in the history
  • Loading branch information
dbarrosop authored Aug 9, 2017
1 parent 42729d5 commit 6d4e46a
Show file tree
Hide file tree
Showing 8 changed files with 57 additions and 9 deletions.
1 change: 1 addition & 0 deletions napalm_base/validate.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ def _compare_getter_dict(src, dst, mode):
complies = intermediate_result
nested = False
if not complies:
result["present"][key]["expected_value"] = src_element
result["present"][key]["actual_value"] = dst_element

if not complies:
Expand Down
8 changes: 5 additions & 3 deletions test/unit/validate/mocked_data/non_strict_fail/report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,15 @@ get_bgp_neighbors:
extra: []
missing: []
present:
sent_prefixes: {actual_value: 2, complies: false,
sent_prefixes: {actual_value: 2, expected_value: 6, complies: false,
nested: false}
nested: true
nested: true
is_enabled: {complies: true, nested: false}
nested: true
192.0.2.3: {complies: true, nested: true}
nested: true
router_id: {actual_value: 192.0.2.2, complies: false, nested: false}
router_id: {actual_value: 192.0.2.2, expected_value: 192.6.6.6, complies: false, nested: false}
nested: true
get_facts:
complies: false
Expand Down Expand Up @@ -110,6 +110,7 @@ get_environment:
present:
'%usage':
actual_value: 100.0
expected_value: <20.0
complies: False
nested: False
nested: True
Expand All @@ -123,6 +124,7 @@ get_environment:
present:
available_ram:
actual_value: 90.0
expected_value: <20.0
complies: False
nested: False
nested: True
nested: True
10 changes: 10 additions & 0 deletions test/unit/validate/mocked_data/simple_fail/get_facts.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"os_version": "7.0(3)I2(2d)",
"uptime": 16676160,
"interface_list": ["Vlan5", "Vlan100", "Vlan40", "Vlan41", "GigabitEthernet0/1", "GigabitEthernet0/2", "GigabitEthernet0/3", "GigabitEthernet0/4", "GigabitEthernet0/5", "GigabitEthernet0/6", "GigabitEthernet0/7", "GigabitEthernet0/8", "Port-channel1"],
"vendor": "Cisco",
"serial_number": "FOC1308V5NB",
"model": "WS-C2960G-8TC-L",
"hostname": "n9k2",
"fqdn": "NS2903-ASW-01.int.ogenstad.com"
}
13 changes: 13 additions & 0 deletions test/unit/validate/mocked_data/simple_fail/report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
complies: false
skipped: []
get_facts:
complies: false
extra: []
missing: []
present:
hostname:
complies: false
actual_value: n9k2
expected_value: my_hostname
nested: false
3 changes: 3 additions & 0 deletions test/unit/validate/mocked_data/simple_fail/validate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
- get_facts:
hostname: my_hostname
4 changes: 2 additions & 2 deletions test/unit/validate/mocked_data/strict_fail/report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ get_bgp_neighbors:
extra: []
missing: []
present:
sent_prefixes: {actual_value: 0, complies: false,
sent_prefixes: {actual_value: 0, expected_value: "^[1-9]", complies: false,
nested: false}
nested: true
ipv6: {complies: true, nested: true}
Expand Down Expand Up @@ -90,7 +90,7 @@ ping:
extra: []
missing: []
present:
packet_loss: {actual_value: 1, complies: false, nested: false}
packet_loss: {actual_value: 1, expected_value: 0, complies: false, nested: false}
nested: true

get_route_to:
Expand Down
17 changes: 13 additions & 4 deletions test/unit/validate/test_unit.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,8 @@
{u'complies': False,
u'extra': [],
u'missing': [],
u'present': {'a': {u'actual_value': 2, u'complies': False, u'nested': False},
u'present': {'a': {u'actual_value': 2, u'expected_value': 1,
u'complies': False, u'nested': False},
'b': {u'complies': True, u'nested': False},
'c': {u'complies': True, u'nested': False}}}
),
Expand All @@ -105,7 +106,8 @@
{u'complies': False,
u'extra': [],
u'missing': ['a'],
u'present': {'b': {u'actual_value': 1, u'complies': False, u'nested': False},
u'present': {'b': {u'actual_value': 1, u'expected_value': 2,
u'complies': False, u'nested': False},
'c': {u'complies': True, u'nested': False}}}
),
(
Expand Down Expand Up @@ -140,6 +142,7 @@
u'extra': [],
u'missing': [],
u'present': {'A': {u'actual_value': 1,
u'expected_value': 3,
u'complies': False,
u'nested': False},
'B': {u'complies': True,
Expand All @@ -159,6 +162,7 @@
u'extra': [],
u'missing': ['B'],
u'present': {'A': {u'actual_value': 1,
u'expected_value': 3,
u'complies': False,
u'nested': False}}},
u'nested': True}}}
Expand All @@ -179,7 +183,8 @@
{u'complies': False,
u'extra': [],
u'missing': [],
u'present': {'a': {u'actual_value': 2, u'complies': False, u'nested': False},
u'present': {'a': {u'actual_value': 2, u'expected_value': 1,
u'complies': False, u'nested': False},
'b': {u'complies': True, u'nested': False},
'c': {u'complies': True, u'nested': False}}}
),
Expand All @@ -189,7 +194,8 @@
{u'complies': False,
u'extra': [],
u'missing': ['a'],
u'present': {'b': {u'actual_value': 1, u'complies': False, u'nested': False},
u'present': {'b': {u'actual_value': 1, u'expected_value': 2,
u'complies': False, u'nested': False},
'c': {u'complies': True, u'nested': False}}}
),
(
Expand Down Expand Up @@ -224,6 +230,7 @@
u'extra': [],
u'missing': [],
u'present': {'A': {u'actual_value': 1,
u'expected_value': 3,
u'complies': False,
u'nested': False},
'B': {u'complies': True,
Expand All @@ -243,6 +250,7 @@
u'extra': ['C'],
u'missing': ['B'],
u'present': {'A': {u'actual_value': 1,
u'expected_value': 3,
u'complies': False,
u'nested': False}}},
u'nested': True}}}
Expand All @@ -260,6 +268,7 @@
u'extra': ['C'],
u'missing': ['B'],
u'present': {'A': {u'actual_value': 1,
u'expected_value': 3,
u'complies': False,
u'nested': False}}},
u'nested': True}}}
Expand Down
10 changes: 10 additions & 0 deletions test/unit/validate/test_validate.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,16 @@ def _read_yaml(filename):
class TestValidate:
"""Wraps tests."""

def test_simple_fail(self):
"""A simple test."""
mocked_data = os.path.join(BASEPATH, "mocked_data", "simple_fail")
expected_report = _read_yaml(os.path.join(mocked_data, "report.yml"))

device = FakeDriver(mocked_data)
actual_report = device.compliance_report(os.path.join(mocked_data, "validate.yml"))

assert expected_report == actual_report, yaml.safe_dump(actual_report)

def test_non_strict_pass(self):
"""A simple test."""
mocked_data = os.path.join(BASEPATH, "mocked_data", "non_strict_pass")
Expand Down

0 comments on commit 6d4e46a

Please sign in to comment.