def test_get_ipaddress(self): """Testing method or function named get_ip_address.""" # Test bad addresses bad_addresses = [123, 'koala_bear', None, True, False, {}, []] for item in bad_addresses: result = network.get_ipaddress(item) self.assertIsNone(result) # Test good addresses good_addresses = ['127.0.0.1', '::1', 'localhost', 'www.google.com'] for item in good_addresses: result = network.get_ipaddress(item) self.assertTrue(bool(result))
def add(self, items): """Append PollingPoint to the internal self.data list. Args: items: A PollingPoint object list Returns: None """ # Ensure there is a list of objects if isinstance(items, list) is False: items = [items] # Only add PollingPoint objects that are not duplicated for item in items: if isinstance(item, PollingPoint) is True: # Ignore invalid values if item.valid is False: continue # Add data to the list if item.checksum not in self._checksums: self.data.append(item) # Set object as being.valid self.valid = False not in [ bool(self.data), bool(network.get_ipaddress(self.target)) ]
def _get_target_datapoints(self, item): """Poll each spoke in parallel. Args: item: TargetPollingPoints object Returns: ddv: TargetDataPoints for the SNMPVariable target """ # Intialize data gathering ip_target = item.target ddv = TargetDataPoints(ip_target) # BAC0 only works with IP addresses ip_address = network.get_ipaddress(ip_target) if bool(ip_address) is False: return ddv # Get list of type DataPoint datapoints = [] for polltarget in item.data: # Get polling results value = poll_target_address(ip_address, polltarget.address, 'presentValue', self._bacnet) name = poll_target_address(ip_address, polltarget.address, 'objectName', self._bacnet) # Skip if invalid data is received if value is None: continue # Do multiplication if data.is_numeric(value) is True: value = float(value) * polltarget.multiplier data_type = DATA_FLOAT else: data_type = DATA_STRING # Update datapoints datapoint = DataPoint('analog_value_point_{}'.format( polltarget.address), value, data_type=data_type) datapoint.add(DataPointMetadata('target', ip_target)) if name is not None: datapoint.add(DataPointMetadata('object_name', name)) datapoints.append(datapoint) # Return ddv.add(datapoints) return ddv