def testShowsNotificationIfArchiveStreamingFailsInProgress(self): pathspec = rdf_paths.PathSpec(path=os.path.join( self.base_path, "test.plist"), pathtype=rdf_paths.PathSpec.PathType.OS) session_id = flow_test_lib.TestFlowHelper( flows_transfer.GetFile.__name__, client_mock=self.action_mock, client_id=self.client_id, pathspec=pathspec, token=self.token) if not data_store.RelationalDBFlowsEnabled(): session_id = session_id.Basename() def RaisingStub(*unused_args, **unused_kwargs): yield b"foo" yield b"bar" raise RuntimeError("something went wrong") with utils.Stubber(archive_generator.GetCompatClass(), "Generate", RaisingStub): self.Open("/#/clients/%s" % self.client_id) self.Click("css=a[grrtarget='client.flows']") self.Click("css=td:contains('GetFile')") self.Click("link=Results") self.Click("css=button.DownloadButton") self.WaitUntil( self.IsUserNotificationPresent, "Archive generation failed for flow %s" % session_id) # There will be no failure message, as we can't get a status from an # iframe that triggers the download. self.WaitUntilNot(self.IsTextPresent, "Can't generate archive: Unknown error")
def testShowsErrorMessageIfArchiveStreamingFailsBeforeFirstChunkIsSent(self): pathspec = rdf_paths.PathSpec( path=os.path.join(self.base_path, "test.plist"), pathtype=rdf_paths.PathSpec.PathType.OS) flow_urn = flow.StartAFF4Flow( flow_name=flows_transfer.GetFile.__name__, client_id=self.client_id, pathspec=pathspec, token=self.token) flow_test_lib.TestFlowHelper( flow_urn, self.action_mock, client_id=self.client_id, token=self.token) def RaisingStub(*unused_args, **unused_kwargs): raise RuntimeError("something went wrong") with utils.Stubber(archive_generator.GetCompatClass(), "Generate", RaisingStub): self.Open("/#/clients/%s" % self.client_id) self.Click("css=a[grrtarget='client.flows']") self.Click("css=td:contains('GetFile')") self.Click("link=Results") self.Click("css=button.DownloadButton") self.WaitUntil(self.IsTextPresent, "Can't generate archive: Unknown error") self.WaitUntil( self.IsUserNotificationPresent, "Archive generation failed for flow %s" % flow_urn.Basename())
def testShowsErrorMessageIfArchiveStreamingFailsBeforeFirstChunkIsSent(self): hunt = self._CreateHuntWithDownloadedFile() self.RequestAndGrantHuntApproval(hunt.Basename()) def RaisingStub(*unused_args, **unused_kwargs): raise RuntimeError("something went wrong") with utils.Stubber(archive_generator.GetCompatClass(), "Generate", RaisingStub): self.Open("/") self.Click("css=a[grrtarget=hunts]") self.Click("css=td:contains('GenericHunt')") self.Click("css=li[heading=Results]") self.Click("css=button.DownloadButton") self.WaitUntil(self.IsTextPresent, "Can't generate archive: Unknown error") self.WaitUntil(self.IsUserNotificationPresent, "Archive generation failed for hunt")
def testShowsNotificationIfArchiveStreamingFailsInProgress(self): hunt = self._CreateHuntWithDownloadedFile() self.RequestAndGrantHuntApproval(hunt.Basename()) def RaisingStub(*unused_args, **unused_kwargs): yield b"foo" yield b"bar" raise RuntimeError("something went wrong") with utils.Stubber(archive_generator.GetCompatClass(), "Generate", RaisingStub): self.Open("/") self.Click("css=a[grrtarget=hunts]") self.Click("css=td:contains('GenericHunt')") self.Click("css=li[heading=Results]") self.Click("css=button.DownloadButton") self.WaitUntil(self.IsUserNotificationPresent, "Archive generation failed for hunt") # There will be no failure message, as we can't get a status from an # iframe that triggers the download. self.WaitUntilNot(self.IsTextPresent, "Can't generate archive: Unknown error")