def test_target_polling_points(self): """Testing function target_polling_points.""" # Initialize key variables. result = self.config.target_polling_points() # Test self.assertEqual(isinstance(result, list), True) self.assertEqual(len(result), 1) # Test each dpt item = result[0] self.assertIsInstance(item, TargetPollingPoints) self.assertIsInstance(item.target, OPCUAauth) self.assertEqual( item.target, OPCUAauth( ip_target='unittest.opcua.tcp.target.net', ip_port=7844, username='******', password='******') ) expected = [ PollingPoint(address=1, multiplier=2), PollingPoint(address=3, multiplier=4)] for index, result in enumerate(item.data): self.assertEqual(result.address, expected[index].address) self.assertEqual(result.multiplier, expected[index].multiplier)
def test___repr__(self): """Testing function __repr__.""" # Setup variable address = 20 multiplier = 6 item = PollingPoint(address=address, multiplier=multiplier) # Test expected = ('''\ <PollingPoint address={}, multiplier={}>'''.format(address, multiplier)) result = item.__repr__() self.assertEqual(result, expected)
def get_polling_points(_data): """Create list of PollingPoint objects. Args: _data: List of dicts with 'address' and 'multiplier' as keys Returns: results: List of PollingPoint objects """ # Start conversion results = [] if isinstance(_data, list) is True: # Cycle through list for item in _data: # Reject non dict data if isinstance(item, dict) is False: continue # Assign address value only if present if 'address' in item: address = item['address'] else: continue # Assign replacement multiplier multiplier = item.get('multiplier', 1) # Populate result result = PollingPoint(address=address, multiplier=multiplier) results.append(result) # Return return results
def test_add(self): """Testing function append.""" # Initialize TargetPollingPoints target = 'localhost' dpt = TargetPollingPoints(target) self.assertEqual(dpt.target, target) self.assertFalse(dpt.valid) # Add bad values values = [True, False, None, 'foo'] for value in values: dpt.add(value) self.assertFalse(dpt.valid) # Add good values address = 20 multiplier = 6 value = PollingPoint(address=address, multiplier=multiplier) dpt.add(value) self.assertTrue(dpt.valid) self.assertEqual(len(dpt.data), 1) for item in dpt.data: self.assertEqual(item.address, address) self.assertEqual(item.multiplier, multiplier) # Try adding bad values and the results must be the same values = [True, False, None, 'foo'] for value in values: dpt.add(value) self.assertTrue(dpt.valid) self.assertEqual(len(dpt.data), 1) item = dpt.data[0] self.assertEqual(item.address, address) self.assertEqual(item.multiplier, multiplier)
def test___init__(self): """Testing function __init__.""" # Setup PollingPoint address = 20 multiplier = 6 result = PollingPoint(address=address, multiplier=multiplier) self.assertEqual(result.address, address) self.assertEqual(result.multiplier, multiplier) # Test with bad multiplier address = 25 multipliers = [None, False, True, 'foo'] for multiplier in multipliers: result = PollingPoint(address=address, multiplier=multiplier) self.assertEqual(result.address, address) self.assertEqual(result.multiplier, 1)
def test___init__(self): """Testing function __init__.""" # Test for address in [123, 'koala_bear', '1.2.3', None, True, False, {}, []]: result = IPTargetPollingPoints(address) self.assertFalse(result.valid) for address in ['127.0.0.1', '::1', 'localhost', 'www.google.com']: result = IPTargetPollingPoints(address) result.add(PollingPoint(1, 2)) self.assertTrue(result.valid)