def test_extension_of_multiple_hosts_returned(self): """ Should return an extension from any host if there are multiple indices """ host_id = uuid.uuid4().hex host_2_id = uuid.uuid4().hex parent_id = uuid.uuid4().hex extension_id = uuid.uuid4().hex host = CaseStructure(case_id=host_id) host_2 = CaseStructure(case_id=host_2_id) parent = CaseStructure(case_id=parent_id) self.factory.create_or_update_case( CaseStructure( case_id=extension_id, indices=[ CaseIndex(host, relationship=CASE_INDEX_EXTENSION, identifier="host"), CaseIndex(host_2, relationship=CASE_INDEX_EXTENSION, identifier="host_2"), CaseIndex(parent, relationship=CASE_INDEX_CHILD), ] ) ) returned_cases = get_extension_case_ids(self.domain, [host_2_id]) self.assertItemsEqual(returned_cases, [extension_id]) returned_cases = get_extension_case_ids(self.domain, [host_id]) self.assertItemsEqual(returned_cases, [extension_id])
def test_host_with_multiple_extensions(self): """ Return all extensions from a single host """ host_id = uuid.uuid4().hex extension_id = uuid.uuid4().hex extension_2_id = uuid.uuid4().hex host = CaseStructure(case_id=host_id) self.factory.create_or_update_cases([ CaseStructure( case_id=extension_id, indices=[ CaseIndex(host, relationship=CASE_INDEX_EXTENSION, identifier="host"), ] ), CaseStructure( case_id=extension_2_id, indices=[ CaseIndex(host, relationship=CASE_INDEX_EXTENSION, identifier="host"), ] ), ] ) returned_cases = get_extension_case_ids(self.domain, [host_id]) self.assertItemsEqual(returned_cases, [extension_id, extension_2_id])
def test_extensions_from_list(self): """ Given a list of hosts, should return all extensions """ host_id = uuid.uuid4().hex host_2_id = uuid.uuid4().hex extension_id = uuid.uuid4().hex extension_2_id = uuid.uuid4().hex host = CaseStructure(case_id=host_id) host_2 = CaseStructure(case_id=host_2_id) self.factory.create_or_update_case( CaseStructure( case_id=extension_id, indices=[ CaseIndex(host, relationship=CASE_INDEX_EXTENSION, identifier="host"), ] ) ) self.factory.create_or_update_case( CaseStructure( case_id=extension_2_id, indices=[ CaseIndex(host_2, relationship=CASE_INDEX_EXTENSION, identifier="host"), ] ) ) returned_cases = get_extension_case_ids(self.domain, [host_id, host_2_id]) self.assertItemsEqual(returned_cases, [extension_id, extension_2_id])
def test_simple_extension_returned(self): """ Should return extension if it exists """ host_id = uuid.uuid4().hex extension_id = uuid.uuid4().hex host = CaseStructure(case_id=host_id) self.factory.create_or_update_case( CaseStructure( case_id=extension_id, indices=[ CaseIndex(host, relationship=CASE_INDEX_EXTENSION) ] ) ) returned_cases = get_extension_case_ids(self.domain, [host_id]) self.assertItemsEqual(returned_cases, [extension_id])
def test_no_extensions(self): """ Returns empty when there are other index types """ parent_id = uuid.uuid4().hex child_id = uuid.uuid4().hex parent = CaseStructure(case_id=parent_id) self.factory.create_or_update_case( CaseStructure( case_id=child_id, indices=[ CaseIndex(parent, relationship=CASE_INDEX_CHILD) ] ) ) returned_cases = get_extension_case_ids(self.domain, [parent_id]) self.assertEqual(returned_cases, [])