def setUp(self): super(BaseViewTestCase, self).setUp() self.storage = storage.GitStorage(self.location) if self.path is None: raise ValueError("Forgot to declare a path!") self.path = Path(self.path) self.user = factories.UserFactory(password="******") self.client.login(username=self.user.username, password="******") git_obj = self.storage.repository.open(self.path) if git_obj.type == pygit2.GIT_OBJ_BLOB: self.blob = git_obj # Permission to parent path parent = Path(self.path.parent_path) self.permission = factories.TreePermissionFactory( parent_path=parent.parent_path, name=parent.name, user=self.user ) # Blob metadata self.metadata = factories.BlobMetadataFactory(id=self.blob.hex, mimetype="text/plain") elif git_obj.type == pygit2.GIT_OBJ_TREE: self.tree = git_obj # Permission to itself factories.TreePermissionFactory(parent_path=self.path.parent_path, name=self.path.name, user=self.user)
def test_check_permissions(self): view = views.DummyRepositoryView() self.assertRaises(NotImplementedError, view.check_permissions) request = RequestFactory() request.user = factories.UserFactory() view = views.DummyAdminDeleteView(request=request, path=Path("")) self.assertRaises(PermissionDenied, view.check_permissions) request = RequestFactory() request.user = factories.SuperUserFactory() view = views.DummyAdminDeleteView(request=request, path=Path("")) self.assertIsNone(view.check_permissions())
def test_dispatch_not_found(self): request = RequestFactory() request.user = factories.UserFactory() view = views.DummyTreeView() self.assertRaises(Http404, view.dispatch, request, path=Path("tot/coin"))
def test_filter_hidden(self): request = RequestFactory() request.user = factories.UserFactory() view = views.DummyTreeView(request=request, path=Path("path/with/hidden"), storage=self.storage) blobs = view.filter_blobs() self.assertNotIn(".file", [entry['name'] for entry in blobs]) trees = view.filter_trees(view.path) self.assertNotIn(".directory", [entry['name'] for entry in trees])
def test_check_permissions(self): response = self.client.get(reverse('repo_browse', args=[self.path])) self.assertEqual(response.status_code, 200) user = factories.UserFactory(password="******") self.client.login(username=user.username, password="******") response = self.client.get(reverse('repo_browse', args=[self.path])) self.assertEqual(response.status_code, 403) tree_path = Path(self.path.parent_path) factories.TreePermissionFactory(parent_path=tree_path.parent_path, name=tree_path.name, user=user) response = self.client.get(reverse('repo_browse', args=[self.path])) self.assertEqual(response.status_code, 200)
def test_resolve_root(self): path = Path("") self.assertEqual(path.resolve("name"), "name")
def test_resolve_bytes(self): path = Path("my/path") self.assertEqual(path.resolve(b"name"), "my/path/name")
def test_path_root(self): path = Path("") self.assertEqual(path.parent_path, "") self.assertEqual(path.name, "")
def test_path_bytes(self): path = Path(b'my/path') self.assertEqual(path.parent_path, "my") self.assertEqual(path.name, "path")
def test_path_str(self): path = Path("my/path") self.assertEqual(path.parent_path, "my") self.assertEqual(path.name, "path")