def test_windows10_w_2_ethernets(self): ifcfg.distro = "Windows" ifcfg.Parser = ifcfg.get_parser_class() self.assertTrue(issubclass(ifcfg.Parser, WindowsParser)) parser = ifcfg.get_parser( ifconfig=ipconfig_out.WINDOWS_10_WITH_2_ETHERNETS ) interfaces = parser.interfaces # Check that the first adapter is present self.assertIn("Ethernet adapter Ethernet", interfaces.keys()) # Check that the second adapter is present self.assertIn("Ethernet adapter Ethernet 2", interfaces.keys()) self.assertEqual(len(interfaces.keys()), 4) # Check that properties of both adapters are correct # Adapter 1 eq_(interfaces['Ethernet adapter Ethernet']['inet'], '10.0.2.15') eq_(interfaces['Ethernet adapter Ethernet']['ether'], '08:00:27:cc:be:af') eq_(interfaces['Ethernet adapter Ethernet']['inet6'], []) # Adapter 2 eq_(interfaces['Ethernet adapter Ethernet 2']['inet'], '192.168.56.101') eq_(interfaces['Ethernet adapter Ethernet 2']['ether'], '08:00:27:0d:9a:0b') eq_(interfaces['Ethernet adapter Ethernet 2']['inet6'], [])
def test_cp1252_non_utf8_byte(self): """ Tests that things are still working when using this bizarre encoding """ ifcfg.distro = "Windows" ifcfg.Parser = ifcfg.get_parser_class() self.assertTrue(issubclass(ifcfg.Parser, WindowsParser)) parser = ifcfg.get_parser() interfaces = parser.interfaces self.assertIn("Ethernet adapter Local Area Connection 2", interfaces.keys()) self.assertIn("Tunnel adapter isatap.lan", interfaces.keys()) self.assertIn("Tunnel adapter Teredo Tunneling Pseudo-Interface", interfaces.keys()) self.assertEqual(len(interfaces.keys()), 3) eq_(interfaces['Ethernet adapter Local Area Connection 2']['inet'], '10.0.2.15') self.assertEqual( len(interfaces['Ethernet adapter Local Area Connection 2'] ['inet6']), 0)
def test_macosx(self): parser = ifcfg.get_parser(distro='MacOSX', kernel='11.4.0', ifconfig=ifconfig_out.MACOSX) interfaces = parser.interfaces eq_(interfaces['en0']['ether'], '1a:2b:3c:4d:5e:6f') eq_(interfaces['en0']['inet'], '192.168.0.1') eq_(interfaces['en0']['broadcast'], '192.168.0.255') eq_(interfaces['en0']['netmask'], '255.255.255.0')
def test_linux3(self): parser = ifcfg.get_parser(distro='Linux', kernel='3.3', ifconfig=ifconfig_out.LINUX3) interfaces = parser.interfaces eq_(interfaces['eth0']['ether'], '1a:2b:3c:4d:5e:6f') eq_(interfaces['eth0']['inet'], '192.168.0.1') eq_(interfaces['eth0']['broadcast'], '192.168.0.255') eq_(interfaces['eth0']['netmask'], '255.255.255.0')
def test_macosx2(self): ifcfg.distro = 'MacOSX' ifcfg.Parser = ifcfg.get_parser_class() parser = ifcfg.get_parser(ifconfig=ifconfig_out.MACOSX2) interfaces = parser.interfaces self.assertEqual(len(interfaces.keys()), 9) eq_(interfaces['lo0']['inet'], '127.0.0.1') eq_(interfaces['lo0']['inet4'], ['127.0.0.1', '127.0.1.99']) eq_(interfaces['lo0']['netmask'], '255.0.0.0')
def test_default_interface_windows10(self): ifcfg.distro = 'Windows' ifcfg.Parser = ifcfg.get_parser_class() parser = ifcfg.get_parser(ifconfig=ipconfig_out.WINDOWS_10_ETH) default = parser.default_interface ok_(default) eq_(default['inet'], '192.168.1.2') eq_(default['default_gateway'], '192.168.1.1')
def test_default_interface_windows7vm(self): ifcfg.distro = 'Windows' ifcfg.Parser = ifcfg.get_parser_class() parser = ifcfg.get_parser(ifconfig=ipconfig_out.WINDOWS_7_VM) default = parser.default_interface ok_(default) eq_(default['inet'], '10.0.2.15') eq_(default['default_gateway'], '10.0.2.2')
def test_linux_multi_inet4(self): ifcfg.Parser = UnixIPParser parser = ifcfg.get_parser(ifconfig=ip_out.LINUX_MULTI_IPV4) interfaces = parser.interfaces # Connected interface eq_(interfaces['eth0']['ether'], 'b8:27:eb:50:39:69') eq_(interfaces['eth0']['inet'], '192.168.13.1') eq_(interfaces['eth0']['inet4'], ['192.168.13.1', '192.168.10.3']) eq_(interfaces['eth0']['broadcast'], '192.168.13.255') eq_(interfaces['eth0']['netmask'], '/24')
def test_vlan(self): """ Regression test for: https://github.com/ftao/python-ifcfg/issues/40 """ ifcfg.distro = 'Linux' ifcfg.Parser = LinuxParser parser = ifcfg.get_parser(ifconfig=ifconfig_out.LINUX_VLAN) interfaces = parser.interfaces self.assertEqual(len(interfaces.keys()), 9) eq_(interfaces['eth2.2']['ether'], '08:00:27:7c:6d:9d')
def test_linux4(self): ifcfg.distro = 'Linux' ifcfg.Parser = ifcfg.get_parser_class() parser = ifcfg.get_parser(ifconfig=ifconfig_out.LINUX4) interfaces = parser.interfaces self.assertEqual(len(interfaces.keys()), 1) eq_(interfaces['br-339b29e0f3aa']['ether'], '02:42:64:80:dd:3e') eq_(interfaces['br-339b29e0f3aa']['inet'], '192.168.0.1') eq_(interfaces['br-339b29e0f3aa']['broadcast'], '192.168.0.255') eq_(interfaces['br-339b29e0f3aa']['netmask'], '255.255.255.0')
def test_macosx(self): ifcfg.distro = 'MacOSX' ifcfg.Parser = ifcfg.get_parser_class() parser = ifcfg.get_parser(ifconfig=ifconfig_out.MACOSX) interfaces = parser.interfaces self.assertEqual(len(interfaces.keys()), 2) eq_(interfaces['en0']['ether'], '1a:2b:3c:4d:5e:6f') eq_(interfaces['en0']['inet'], '192.168.0.1') eq_(interfaces['en0']['broadcast'], '192.168.0.255') eq_(interfaces['en0']['netmask'], '255.255.255.0')
def test_linux3(self): ifcfg.distro = 'Linux' ifcfg.Parser = LinuxParser parser = ifcfg.get_parser(ifconfig=ifconfig_out.LINUX3) interfaces = parser.interfaces self.assertEqual(len(interfaces.keys()), 2) eq_(interfaces['eth0']['ether'], '1a:2b:3c:4d:5e:6f') eq_(interfaces['eth0']['inet'], '192.168.0.1') eq_(interfaces['eth0']['broadcast'], '192.168.0.255') eq_(interfaces['eth0']['netmask'], '255.255.255.0')
def test_default_interface_windows10_w_2_ethernets(self): ifcfg.distro = 'Windows' ifcfg.Parser = ifcfg.get_parser_class() parser = ifcfg.get_parser( ifconfig=ipconfig_out.WINDOWS_10_WITH_2_ETHERNETS) default = parser.default_interface ok_(default) eq_(default['inet'], '10.0.2.15') eq_(default['default_gateway'], '10.0.2.2')
def get_my_info(ip): import ifcfg int_dic = ifcfg.get_parser().interfaces for inte in int_dic: if int_dic[inte]["inet"] != ip: continue return {"ip": ip, "mac": int_dic[inte]["ether"], "mac_vendor": get_device_manufacter_from_mac(int_dic[inte]["ether"]), "hostname": get_my_hostname()} return {}
def test_linux(self): ifcfg.Parser = UnixIPParser parser = ifcfg.get_parser(ifconfig=ip_out.LINUX) interfaces = parser.interfaces # Unconnected interface eq_(interfaces['enp0s25']['ether'], 'a0:00:00:00:00:00') eq_(interfaces['enp0s25']['inet'], None) # Connected interface eq_(interfaces['wlp3s0']['ether'], 'a0:00:00:00:00:00') eq_(interfaces['wlp3s0']['inet'], '192.168.12.34') eq_(interfaces['wlp3s0']['broadcast'], '192.168.12.255') eq_(interfaces['wlp3s0']['netmask'], '/24')
def test_linuxdocker(self): ifcfg.distro = 'Linux' ifcfg.Parser = LinuxParser parser = ifcfg.get_parser(ifconfig=ifconfig_out.LINUXDOCKER) interfaces = parser.interfaces self.assertEqual(len(interfaces.keys()), 7) eq_(interfaces['enp0s31f6']['ether'], '54:e1:ad:76:c8:cb') eq_(interfaces['enp0s31f6']['inet'], '192.168.1.94') eq_(interfaces['enp0s31f6']['broadcast'], '192.168.1.255') eq_(interfaces['enp0s31f6']['netmask'], '255.255.255.0') eq_(interfaces['br-736aa253dd57']['ether'], '02:42:9c:fe:60:db') eq_(interfaces['br-736aa253dd57']['inet'], '172.19.0.1') eq_(interfaces['br-736aa253dd57']['broadcast'], '0.0.0.0') eq_(interfaces['br-736aa253dd57']['netmask'], '255.255.0.0')
def test_linuxdocker(self): ifcfg.distro = 'Linux' ifcfg.Parser = ifcfg.get_parser_class() parser = ifcfg.get_parser(ifconfig=ifconfig_out.LINUXDOCKER) interfaces = parser.interfaces self.assertEqual(len(interfaces.keys()), 7) eq_(interfaces['enp0s31f6']['ether'], '54:e1:ad:76:c8:cb') eq_(interfaces['enp0s31f6']['inet'], '192.168.1.94') eq_(interfaces['enp0s31f6']['broadcast'], '192.168.1.255') eq_(interfaces['enp0s31f6']['netmask'], '255.255.255.0') eq_(interfaces['br-736aa253dd57']['ether'], '02:42:9c:fe:60:db') eq_(interfaces['br-736aa253dd57']['inet'], '172.19.0.1') eq_(interfaces['br-736aa253dd57']['broadcast'], '0.0.0.0') eq_(interfaces['br-736aa253dd57']['netmask'], '255.255.0.0')
def test_linux(self): ifcfg.Parser = UnixIPParser parser = ifcfg.get_parser(ifconfig=ip_out.LINUX) interfaces = parser.interfaces # Unconnected interface eq_(interfaces['enp0s25']['ether'], 'a0:00:00:00:00:00') eq_(interfaces['enp0s25']['inet'], None) # Connected interface eq_(interfaces['wlp3s0']['ether'], 'a0:00:00:00:00:00') eq_(interfaces['wlp3s0']['inet'], '192.168.12.34') eq_(interfaces['wlp3s0']['inet6'], ['fd37:a521:ada9::869', 'fd37:a521:ada9:0:b9f7:44f8:bb19:c78c', 'fd37:a521:ada9:0:9073:a91:d14f:8087', 'fe80::205f:5d09:d0da:7aed']) eq_(interfaces['wlp3s0']['broadcast'], '192.168.12.255') eq_(interfaces['wlp3s0']['netmask'], '/24') # Connected interface eq_(interfaces['enp6s0.2']['ether'], '00:73:00:5c:09:9a') eq_(interfaces['enp6s0.2']['inet'], '10.2.2.253') eq_(interfaces['enp6s0.2']['inet4'], ['10.2.2.253', '10.1.1.253']) eq_(interfaces['enp6s0.2']['inet6'], [])
def test_windows10(self): ifcfg.distro = "Windows" ifcfg.Parser = ifcfg.get_parser_class() self.assertTrue(issubclass(ifcfg.Parser, WindowsParser)) parser = ifcfg.get_parser(ifconfig=ipconfig_out.WINDOWS_10_ETH) interfaces = parser.interfaces self.assertIn("Ethernet adapter Ethernet", interfaces.keys()) self.assertIn("Wireless LAN adapter Local Area Connection* 2", interfaces.keys()) self.assertIn("Wireless LAN adapter Local Area Connection* 3", interfaces.keys()) self.assertIn("Wireless LAN adapter Wi-Fi", interfaces.keys()) self.assertIn("Tunnel adapter isatap.lan", interfaces.keys()) self.assertIn("Tunnel adapter Teredo Tunneling Pseudo-Interface", interfaces.keys()) self.assertEqual(len(interfaces.keys()), 6) eq_(interfaces['Ethernet adapter Ethernet']['inet'], '192.168.1.2') eq_(interfaces['Ethernet adapter Ethernet']['ether'], '11:11:11:11:a1:fa')
def test_windows7vm(self): ifcfg.distro = "Windows" ifcfg.Parser = ifcfg.get_parser_class() self.assertTrue(issubclass(ifcfg.Parser, WindowsParser)) parser = ifcfg.get_parser(ifconfig=ipconfig_out.WINDOWS_7_VM) interfaces = parser.interfaces self.assertIn("Ethernet adapter Local Area Connection 2", interfaces.keys()) self.assertIn("Tunnel adapter isatap.lan", interfaces.keys()) self.assertIn("Tunnel adapter Teredo Tunneling Pseudo-Interface", interfaces.keys()) self.assertEqual(len(interfaces.keys()), 3) eq_(interfaces['Ethernet adapter Local Area Connection 2']['inet'], '10.0.2.15') self.assertEqual( len(interfaces['Ethernet adapter Local Area Connection 2']['inet6']), 0 )
def test_FreeBSD(self): ifcfg.distro = 'FreeBSD' ifcfg.Parser = ifcfg.get_parser_class() parser = ifcfg.get_parser(ifconfig=ifconfig_out.FREEBSD) interfaces = parser.interfaces self.assertEqual(len(interfaces.keys()), 5) # iflan0 eq_(interfaces['iflan0']['ether'], '00:50:56:80:7f:2a') eq_(interfaces['iflan0']['inet'], '192.168.0.1') eq_(interfaces['iflan0']['broadcast'], '192.168.3.255') eq_(interfaces['iflan0']['netmask'], 22) # ifwan0 eq_(interfaces['ifwan0']['ether'], '00:50:56:80:56:57') eq_(interfaces['ifwan0']['inet'], '10.0.0.6') eq_(interfaces['ifwan0']['broadcast'], '10.0.0.7') eq_(interfaces['ifwan0']['netmask'], 30) # ifcli715 eq_(interfaces['ifcli715']['ether'], '00:50:56:80:14:68') eq_(interfaces['ifcli715']['inet'], '10.0.106.254') eq_(interfaces['ifcli715']['broadcast'], '10.0.106.255') eq_(interfaces['ifcli715']['netmask'], 24)
def test_cp1252_non_utf8_byte(self): """ Tests that things are still working when using this bizarre encoding """ ifcfg.distro = "Windows" ifcfg.Parser = ifcfg.get_parser_class() self.assertTrue(issubclass(ifcfg.Parser, WindowsParser)) parser = ifcfg.get_parser() interfaces = parser.interfaces self.assertIn("Ethernet adapter Local Area Connection 2", interfaces.keys()) self.assertIn("Tunnel adapter isatap.lan", interfaces.keys()) self.assertIn("Tunnel adapter Teredo Tunneling Pseudo-Interface", interfaces.keys()) self.assertEqual(len(interfaces.keys()), 3) eq_(interfaces['Ethernet adapter Local Area Connection 2']['inet'], '10.0.2.15') self.assertEqual( len(interfaces['Ethernet adapter Local Area Connection 2']['inet6']), 0 )
def test_illegal(self): ifcfg.distro = 'Linux' ifcfg.Parser = ifcfg.get_parser_class() ifcfg.get_parser(ifconfig=ifconfig_out.ILLEGAL_OUTPUT)
def test_illegal(self): ifcfg.distro = 'Linux' ifcfg.Parser = LinuxParser ifcfg.get_parser(ifconfig=ifconfig_out.ILLEGAL_OUTPUT)
def ip_is_me(ip): import ifcfg int_dic = ifcfg.get_parser().interfaces ips = [int_dic[x]["inet"] for x in int_dic] return ip in filter(lambda x: x is not None, ips)
def test_unknown(self): parser = ifcfg.get_parser(distro='Bogus', kernel='55')