예제 #1
0
    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)
예제 #2
0
    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)
예제 #3
0
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
예제 #4
0
    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)
예제 #5
0
    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)
예제 #6
0
    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)