Exemplo n.º 1
0
    def test_create_index_for_fingerprints(self):
        """Test create index for fingerprints."""
        fingerprints = [{
            'id': 1,
            'os_release': 'RHEL 7',
            'bios_uuid': '1234'
        }, {
            'id': 2,
            'os_release': 'RHEL 7',
            'bios_uuid': '2345'
        }, {
            'id': 3,
            'os_release': 'RHEL 6'
        }]

        # Test that unique id not in objects
        index, no_key_found = _create_index_for_fingerprints(
            'bios_uuid', fingerprints, False)
        self.assertIsNone(no_key_found[0].get(FINGERPRINT_GLOBAL_ID_KEY))

        # Tests with unique id in objects
        index, no_key_found = _create_index_for_fingerprints(
            'bios_uuid', fingerprints)

        self.assertEqual(len(no_key_found), 1)
        self.assertEqual(no_key_found[0]['id'], 3)
        self.assertIsNotNone(no_key_found[0].get(FINGERPRINT_GLOBAL_ID_KEY))
        self.assertEqual(len(index.keys()), 2)
        self.assertIsNotNone(index.get('1234'))
        self.assertIsNotNone(index.get('2345'))
Exemplo n.º 2
0
    def test_remove_duplicate_fingerprints(self):
        """Test remove duplicate fingerprints created by index."""
        fingerprints = [{
            'id': 1,
            'os_release': 'RHEL 7',
            'mac_addresses': ['1234', '2345']
        }, {
            'id': 2,
            'os_release': 'RHEL 7',
            'mac_addresses': ['9876', '8765']
        }, {
            'id': 3,
            'os_release': 'RHEL 6'
        }]
        index, no_key_found = _create_index_for_fingerprints(
            'mac_addresses', fingerprints)

        self.assertEqual(len(no_key_found), 1)
        self.assertEqual(no_key_found[0]['id'], 3)
        self.assertIsNotNone(no_key_found[0].get(FINGERPRINT_GLOBAL_ID_KEY))
        self.assertEqual(len(index.keys()), 4)
        self.assertIsNotNone(index.get('1234'))
        self.assertIsNotNone(index.get('2345'))
        self.assertIsNotNone(index.get('9876'))
        self.assertIsNotNone(index.get('8765'))

        # deplicate but leave unique key
        leave_key_list = list(index.values())
        unique_list = _remove_duplicate_fingerprints(
            [FINGERPRINT_GLOBAL_ID_KEY], leave_key_list)
        self.assertEqual(len(unique_list), 2)
        self.assertIsNotNone(unique_list[0].get(FINGERPRINT_GLOBAL_ID_KEY))

        # same test, but add value that doesn't have key
        leave_key_list = list(index.values())
        leave_key_list.append({'id': 3, 'os_release': 'RHEL 6'})
        unique_list = _remove_duplicate_fingerprints(
            [FINGERPRINT_GLOBAL_ID_KEY], leave_key_list)
        self.assertEqual(len(unique_list), 3)

        # now pass flag to strip id key
        remove_key_list = list(index.values())
        unique_list = _remove_duplicate_fingerprints(
            [FINGERPRINT_GLOBAL_ID_KEY], remove_key_list, True)
        self.assertEqual(len(unique_list), 2)
        self.assertIsNone(unique_list[0].get(FINGERPRINT_GLOBAL_ID_KEY))