def test_display_results(): parser = Parser() endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1', 'ipv4': '0.0.0.0', 'ipv6': '1212::1' } endpoints = [endpoint] parser.display_results( endpoints, ['ID', 'MAC Address', 'Switch', 'Port', 'VLAN', 'IPv4', 'IPv6'], ipv4_only=False, ipv6_only=True) parser.display_results( endpoints, ['ID', 'MAC Address', 'Switch', 'Port', 'VLAN', 'IPv6'], ipv4_only=False, ipv4_and_ipv6=True) parser.display_results( endpoints, ['ID', 'MAC Address', 'Switch', 'Port', 'VLAN', 'IPv4'], ipv4_only=False, ipv4_and_ipv6=True)
def test_remove_endpoint(): s = SDNConnect() endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00'} s.endpoints.append(endpoint) s.remove_endpoint(endpoint)
def test_get_prev_ipv6_oses(): endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1' } GetData._get_prev_ipv6_oses(endpoint)
def test_Endpoint(): """ Tests Endpoint """ endpoint = Endpoint('foo') b = endpoint.encode() c = EndpointDecoder(b).get_endpoint() a = {'tenant': 'foo', 'mac': '00:00:00:00:00:00'} hashed_val = Endpoint.make_hash(a)
def test_get_ipv6_os(): endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1', 'ipv6': '1212::1'} endpoint.metadata = {'ipv6_addresses': {}} ipv6_os = GetData._get_ipv6_os(endpoint) assert ipv6_os == 'NO DATA' endpoint.metadata = {'ipv6_addresses': {'1212::1': {'os': 'foo'}}} ipv6_os = GetData._get_ipv6_os(endpoint) assert ipv6_os == 'foo'
def test_get_ipv6_rdns(): endpoint = Endpoint('foo') endpoint.endpoint_data = {'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1', 'ipv4': '0.0.0.0', 'ipv4_subnet': '0.0.0.0/24'} ipv6_rdns = GetData._get_ipv6_rdns(endpoint) assert ipv6_rdns == 'NO DATA' endpoint.endpoint_data = {'ipv6_rdns': 'foo.internal', 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1', 'ipv4': '0.0.0.0', 'ipv4_subnet': '0.0.0.0/24'} ipv6_rdns = GetData._get_ipv6_rdns(endpoint) assert ipv6_rdns == 'foo.internal'
def test_get_ether_vendor(): endpoint = Endpoint('foo') endpoint.endpoint_data = {'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1', 'ipv4': '0.0.0.0', 'ipv4_subnet': '0.0.0.0/24'} ether_vendor = GetData._get_ether_vendor(endpoint) assert ether_vendor == 'NO DATA' endpoint.endpoint_data = {'ether_vendor': 'VENDOR', 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1', 'ipv4': '0.0.0.0', 'ipv4_subnet': '0.0.0.0/24'} ether_vendor = GetData._get_ether_vendor(endpoint) assert ether_vendor == 'VENDOR'
def test_get_ipv6_subnet(): endpoint = Endpoint('foo') endpoint.endpoint_data = {'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1', 'ipv6': '1212::1'} ipv6_subnet = GetData._get_ipv6_subnet(endpoint) assert ipv6_subnet == 'NO DATA' endpoint.endpoint_data = {'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1', 'ipv6': '1212::1', 'ipv6_subnet': '1212::1/64'} ipv6_subnet = GetData._get_ipv6_subnet(endpoint) assert ipv6_subnet == '1212::1/64'
def test_get_ipv4_subnet(): endpoint = Endpoint('foo') endpoint.endpoint_data = {'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1', 'ipv4': '0.0.0.0'} ipv4_subnet = GetData._get_ipv4_subnet(endpoint) assert ipv4_subnet == 'NO DATA' endpoint.endpoint_data = {'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1', 'ipv4': '0.0.0.0', 'ipv4_subnet': '0.0.0.0/24'} ipv4_subnet = GetData._get_ipv4_subnet(endpoint) assert ipv4_subnet == '0.0.0.0/24'
def test_endpoints_by_mac(): s = SDNConnect() endpoints = s.endpoints_by_mac('00:00:00:00:00:01') assert endpoints == [] endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1'} s.endpoints.append(endpoint) endpoint2 = s.endpoints_by_mac('00:00:00:00:00:00') assert [endpoint] == endpoint2
def test_endpoints_by_ip(): s = SDNConnect() endpoints = s.endpoints_by_ip('10.0.0.1') assert endpoints == [] endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1', 'ipv4': '10.0.0.1', 'ipv6': 'None'} s.endpoints.append(endpoint) endpoint2 = s.endpoints_by_ip('10.0.0.1') assert [endpoint] == endpoint2
def test_endpoint_by_hash(): s = SDNConnect() endpoint = s.endpoint_by_hash('foo') assert endpoint == None endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1'} s.endpoints.append(endpoint) endpoint2 = s.endpoint_by_hash('foo') assert endpoint == endpoint2
def test_get_next_state(): endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1' } state = GetData._get_next_state(endpoint) assert state == 'None'
def test_endpoint_by_name(): s = SDNConnect() endpoint = s.endpoint_by_name('foo') assert endpoint == None endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1'} s.endpoints[endpoint.name] = endpoint endpoint2 = s.endpoint_by_name('foo') assert endpoint == endpoint2
def test_get_ignored(): endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1' } ignored = GetData._get_ignored(endpoint) assert ignored == 'False'
def test_get_port(): endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1' } port = GetData._get_port(endpoint) assert port == '1'
def test_get_vlan(): endpoint = Endpoint('foo') endpoint.endpoint_data = { 'vlan': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1' } vlan = GetData._get_vlan(endpoint) assert vlan == 'foo'
def test_get_mac(): endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1' } mac = GetData._get_mac(endpoint) assert mac == '00:00:00:00:00:00'
def test_get_switch(): endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1' } switch = GetData._get_switch(endpoint) assert switch == 'foo'
def test_get_name(): endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1' } name = GetData._get_name(endpoint) assert name == 'foo'
def test_get_last_seen(): endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1' } endpoint.p_prev_states = [('unknown', 1551711125)] GetData._get_last_seen(endpoint)
def test_display_results(): parser = Parser() endpoint = Endpoint('foo') endpoint.endpoint_data = { 'vlan': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1', 'ipv4': '0.0.0.0', 'ipv6': '1212::1' } endpoints = [endpoint] parser.display_results( endpoints, ['ID', 'MAC Address', 'Switch', 'Port', 'VLAN', 'IPv4', 'IPv6'], ipv4_only=False, ipv6_only=True) parser.display_results( endpoints, ['ID', 'MAC Address', 'Switch', 'Port', 'VLAN', 'IPv6'], ipv4_only=False, ipv4_and_ipv6=True) parser.display_results( endpoints, ['ID', 'MAC Address', 'Switch', 'Port', 'VLAN', 'IPv4'], ipv4_only=False, ipv4_and_ipv6=True) parser.display_results( endpoints, ['ID', 'MAC Address', 'Switch', 'Port', 'VLAN', 'IPv4'], ipv4_only=False, ipv4_and_ipv6=True, unique=True) parser.display_results( endpoints, ['ID', 'MAC Address', 'Switch', 'Port', 'VLAN', 'IPv4'], ipv4_only=False, ipv4_and_ipv6=True, nonzero=True) parser.display_results( endpoints, ['ID', 'MAC Address', 'Switch', 'Port', 'VLAN', 'IPv4'], ipv4_only=False, ipv4_and_ipv6=True, nonzero=True, unique=True) parser.display_results( endpoints, ['ID', 'MAC Address', 'Switch', 'Port', 'VLAN', 'IPv4'], ipv4_only=False, ipv4_and_ipv6=True, nonzero=True, unique=True, output_format="csv") parser.display_results( endpoints, ['ID', 'MAC Address', 'Switch', 'Port', 'VLAN', 'IPv4'], ipv4_only=False, ipv4_and_ipv6=True, nonzero=True, unique=True, output_format="json")
def test_Actions(): """ Tests Actions """ endpoint = Endpoint('foo') endpoint.endpoint_data = {'mac': '00:00:00:00:00:00'} s = SDNConnect() a = Actions(endpoint, s.sdnc) a.mirror_endpoint() a.unmirror_endpoint() a.shutdown_endpoint()
def test_get_ipv6(): endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1', 'ipv6': '1212::1' } ipv6 = GetData._get_ipv6(endpoint) assert ipv6 == '1212::1'
def test_get_ipv4(): endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1', 'ipv4': '0.0.0.0' } ipv4 = GetData._get_ipv4(endpoint) assert ipv4 == '0.0.0.0'
def test_get_role(): endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1'} endpoint.metadata = {'mac_addresses': {}} role = GetData._get_role(endpoint) assert role == 'NO DATA' endpoint.metadata = {'mac_addresses': { '00:00:00:00:00:00': {'1551711125': {'labels': ['foo']}}}} role = GetData._get_role(endpoint) assert role == 'foo'
def test_get_role_confidence(): endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1'} endpoint.metadata = {'mac_addresses': {}} confidence = GetData._get_role_confidence(endpoint) assert confidence == 'NO DATA' endpoint.metadata = {'mac_addresses': { '00:00:00:00:00:00': {'1551711125': {'confidences': [10.0]}}}} confidence = GetData._get_role_confidence(endpoint) assert confidence == '10.0'
def test_get_behavior(): endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1'} endpoint.metadata = {'mac_addresses': {}} behavior = GetData._get_behavior(endpoint) assert behavior == 'NO DATA' endpoint.metadata = {'mac_addresses': { '00:00:00:00:00:00': {'1551711125': {'behavior': 'abnormal'}}}} behavior = GetData._get_behavior(endpoint) assert behavior == 'abnormal'
def test_get_acls(): endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1', 'ipv4': '0.0.0.0' } endpoint.acl_data = [] acls = GetData._get_acls(endpoint) assert acls == '[]'
def test_get_ipv4_os(): endpoint = Endpoint('foo') endpoint.endpoint_data = { 'tenant': 'foo', 'mac': '00:00:00:00:00:00', 'segment': 'foo', 'port': '1', 'ipv4': '0.0.0.0' } endpoint.metadata = {'ipv4_addresses': {}} ipv4_os = GetData._get_ipv4_os(endpoint) assert ipv4_os == NO_DATA endpoint.metadata = {'ipv4_addresses': {'0.0.0.0': {'os': 'foo'}}} ipv4_os = GetData._get_ipv4_os(endpoint) assert ipv4_os == 'foo'