예제 #1
0
 def test_access_to_unrestricted_file(self):
     # Requests of unrestricted files are redirected to Librarian URLs.
     request = LaunchpadTestRequest()
     request.setTraversalStack(['foo.txt'])
     navigation = BugAttachmentFileNavigation(self.bugattachment, request)
     view = navigation.publishTraverse(request, '+files')
     mo = re.match('^http://.*/\d+/foo.txt$', view.target)
     self.assertIsNot(None, mo)
예제 #2
0
 def test_traversal_to_lfa_of_bug_attachment(self):
     # Traversing to the URL provided by a ProxiedLibraryFileAlias of a
     # bug attachament returns a RedirectionView.
     request = LaunchpadTestRequest()
     request.setTraversalStack(['foo.txt'])
     navigation = BugAttachmentFileNavigation(self.bugattachment, request)
     view = navigation.publishTraverse(request, '+files')
     self.assertIsInstance(view, RedirectionView)
 def test_access_to_unrestricted_file(self):
     # Requests of unrestricted files are redirected to Librarian URLs.
     request = LaunchpadTestRequest()
     request.setTraversalStack(['foo.txt'])
     navigation = BugAttachmentFileNavigation(
         self.bugattachment, request)
     view = navigation.publishTraverse(request, '+files')
     mo = re.match('^http://.*/\d+/foo.txt$', view.target)
     self.assertIsNot(None, mo)
 def test_traversal_to_lfa_of_bug_attachment(self):
     # Traversing to the URL provided by a ProxiedLibraryFileAlias of a
     # bug attachament returns a RedirectionView.
     request = LaunchpadTestRequest()
     request.setTraversalStack(['foo.txt'])
     navigation = BugAttachmentFileNavigation(
         self.bugattachment, request)
     view = navigation.publishTraverse(request, '+files')
     self.assertIsInstance(view, RedirectionView)
예제 #5
0
 def test_access_to_restricted_file(self):
     # Requests of restricted files are redirected to librarian URLs
     # with tokens.
     lfa_with_parent = getMultiAdapter(
         (self.bugattachment.libraryfile, self.bugattachment),
         ILibraryFileAliasWithParent)
     lfa_with_parent.restricted = True
     self.bug.setPrivate(True, self.bug_owner)
     transaction.commit()
     request = LaunchpadTestRequest()
     request.setTraversalStack(['foo.txt'])
     navigation = BugAttachmentFileNavigation(self.bugattachment, request)
     view = navigation.publishTraverse(request, '+files')
     mo = re.match(
         '^https://.*.restricted.*/\d+/foo.txt\?token=.*$', view.target)
     self.assertIsNot(None, mo)
 def test_access_to_restricted_file(self):
     # Requests of restricted files are redirected to librarian URLs
     # with tokens.
     lfa_with_parent = getMultiAdapter(
         (self.bugattachment.libraryfile, self.bugattachment),
         ILibraryFileAliasWithParent)
     lfa_with_parent.restricted = True
     self.bug.setPrivate(True, self.bug_owner)
     transaction.commit()
     request = LaunchpadTestRequest()
     request.setTraversalStack(['foo.txt'])
     navigation = BugAttachmentFileNavigation(self.bugattachment, request)
     view = navigation.publishTraverse(request, '+files')
     mo = re.match(
         '^https://.*.restricted.*/\d+/foo.txt\?token=.*$', view.target)
     self.assertIsNot(None, mo)
예제 #7
0
 def test_traversal_to_lfa_of_bug_attachment_wrong_filename(self):
     # If the filename provided in the URL does not match the
     # filename of the LibraryFileAlias, a NotFound error is raised.
     request = LaunchpadTestRequest()
     request.setTraversalStack(['nonsense'])
     navigation = BugAttachmentFileNavigation(self.bugattachment, request)
     self.assertRaises(
         NotFound, navigation.publishTraverse, request, '+files')
예제 #8
0
 def test_access_to_restricted_file_unauthorized(self):
     # If a user cannot access the bug attachment itself, they cannot
     # access the restricted Librarian file either.
     lfa_with_parent = getMultiAdapter(
         (self.bugattachment.libraryfile, self.bugattachment),
         ILibraryFileAliasWithParent)
     lfa_with_parent.restricted = True
     self.bug.setPrivate(True, self.bug_owner)
     transaction.commit()
     user = self.factory.makePerson()
     login_person(user)
     self.assertRaises(Unauthorized, getattr, self.bugattachment, 'title')
     request = LaunchpadTestRequest()
     request.setTraversalStack(['foo.txt'])
     navigation = BugAttachmentFileNavigation(self.bugattachment, request)
     self.assertRaises(
         Unauthorized, navigation.publishTraverse, request, '+files')