def testDiskVolumeInfoWindows(self): self.client_id = self.SetupClient(0, system="Windows") with vfs_test_lib.VFSOverrider(rdf_paths.PathSpec.PathType.REGISTRY, vfs_test_lib.FakeRegistryVFSHandler): client_mock = action_mocks.WindowsVolumeClientMock() session_id = flow_test_lib.TestFlowHelper( compatibility.GetName(filesystem.DiskVolumeInfo), client_mock, client_id=self.client_id, token=self.token, path_list=[r"D:\temp\something", r"/var/tmp"]) results = flow_test_lib.GetFlowResults(self.client_id, session_id) # We asked for D and we guessed systemroot (C) for "/var/tmp", but only # C and Z are present, so we should just get C. self.assertCountEqual( [x.windowsvolume.drive_letter for x in results], ["C:"]) session_id = flow_test_lib.TestFlowHelper(compatibility.GetName( filesystem.DiskVolumeInfo), client_mock, client_id=self.client_id, token=self.token, path_list=[r"Z:\blah"]) results = flow_test_lib.GetFlowResults(self.client_id, session_id) self.assertCountEqual( [x.windowsvolume.drive_letter for x in results], ["Z:"])
def testDiskVolumeInfoWindows(self): self.SetupClients(1, system="Windows") with vfs_test_lib.VFSOverrider(rdf_paths.PathSpec.PathType.REGISTRY, vfs_test_lib.FakeRegistryVFSHandler): client_mock = action_mocks.WindowsVolumeClientMock() with test_lib.Instrument(flow.GRRFlow, "SendReply") as send_reply: for _ in flow_test_lib.TestFlowHelper( filesystem.DiskVolumeInfo.__name__, client_mock, client_id=self.client_id, token=self.token, path_list=[r"D:\temp\something", r"/var/tmp"]): pass results = [] for cls, reply in send_reply.args: if isinstance(cls, filesystem.DiskVolumeInfo) and isinstance( reply, rdf_client.Volume): results.append(reply) # We asked for D and we guessed systemroot (C) for "/var/tmp", but only # C and Z are present, so we should just get C. self.assertItemsEqual( [x.windowsvolume.drive_letter for x in results], ["C:"]) self.assertEqual(len(results), 1) with test_lib.Instrument(flow.GRRFlow, "SendReply") as send_reply: for _ in flow_test_lib.TestFlowHelper( filesystem.DiskVolumeInfo.__name__, client_mock, client_id=self.client_id, token=self.token, path_list=[r"Z:\blah"]): pass results = [] for cls, reply in send_reply.args: if isinstance(cls, filesystem.DiskVolumeInfo) and isinstance( reply, rdf_client.Volume): results.append(reply) self.assertItemsEqual( [x.windowsvolume.drive_letter for x in results], ["Z:"]) self.assertEqual(len(results), 1)
def testDiskVolumeInfoWindows(self): self.client_id = self.SetupClient(0, system="Windows") with vfs_test_lib.VFSOverrider(rdf_paths.PathSpec.PathType.REGISTRY, vfs_test_lib.FakeRegistryVFSHandler): client_mock = action_mocks.WindowsVolumeClientMock() with test_lib.Instrument(self.flow_base_cls, "SendReply") as send_reply: flow_test_lib.TestFlowHelper( filesystem.DiskVolumeInfo.__name__, client_mock, client_id=self.client_id, token=self.token, path_list=[r"D:\temp\something", r"/var/tmp"]) results = [] for flow_obj, reply in send_reply.args: if issubclass(flow_obj.__class__, filesystem.DiskVolumeInfoMixin): results.append(reply) # We asked for D and we guessed systemroot (C) for "/var/tmp", but only # C and Z are present, so we should just get C. self.assertCountEqual( [x.windowsvolume.drive_letter for x in results], ["C:"]) self.assertLen(results, 1) with test_lib.Instrument(self.flow_base_cls, "SendReply") as send_reply: flow_test_lib.TestFlowHelper( filesystem.DiskVolumeInfo.__name__, client_mock, client_id=self.client_id, token=self.token, path_list=[r"Z:\blah"]) results = [] for flow_obj, reply in send_reply.args: if issubclass(flow_obj.__class__, filesystem.DiskVolumeInfoMixin): results.append(reply) self.assertCountEqual( [x.windowsvolume.drive_letter for x in results], ["Z:"]) self.assertLen(results, 1)