#!/usr/bin/env python3 import unittest #import pudb; pudb.set_trace() from context import haircontrol from haircontrol import discovery, data, inspectors class MockInspector(inspectors.Inspector): def __init__(self, testDataPath): self.testDataPath = testDataPath self.e = None def connect(self, e): self.e = e def disconnect(self): self.e = None def command(self, command): if not self.e: return None mockfile = self.testDataPath + '/' + self.e.name + '-' + command + '.out' return open(mockfile) #XXX use Inspector.parse() class TestDiscovery(unittest.TestCase): def setUp(self): self.discovery = discovery.Discovery(MockInspector('../test-data/input')) self.maxDiff=None def test_wire_graph(self): ref_net = data.EtherDomain() #json.load('../test-data/ref-output/equipments.json') self.discovery.discover_hinting_from_lldp(data.Equipment('stg2', '172.16.0.253')) self.discovery.discover_from_root(data.Equipment('stg', '172.16.0.254')) self.assertEqual(ref_net.get_equipment_list_sorted(), list(self.discovery.net.get_equipment_list_sorted())) if __name__ == '__main__': unittest.main()