예제 #1
0
    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:"])
예제 #2
0
    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)
예제 #3
0
    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)