Пример #1
0
    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)
Пример #2
0
    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())
Пример #3
0
 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"))
Пример #4
0
    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])
Пример #5
0
    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)
Пример #6
0
 def test_resolve_root(self):
     path = Path("")
     self.assertEqual(path.resolve("name"), "name")
Пример #7
0
 def test_resolve_bytes(self):
     path = Path("my/path")
     self.assertEqual(path.resolve(b"name"), "my/path/name")
Пример #8
0
 def test_path_root(self):
     path = Path("")
     self.assertEqual(path.parent_path, "")
     self.assertEqual(path.name, "")
Пример #9
0
 def test_path_bytes(self):
     path = Path(b'my/path')
     self.assertEqual(path.parent_path, "my")
     self.assertEqual(path.name, "path")
Пример #10
0
 def test_path_str(self):
     path = Path("my/path")
     self.assertEqual(path.parent_path, "my")
     self.assertEqual(path.name, "path")