Exemplo n.º 1
0
    def setUp(self):
        super().setUp()
        self.repo = repository.Repository()

        if self.path is None:
            raise ValueError("Forgot to declare a path!")

        self.path = Path(self.path)
        self.user = factories.UserFactory(password="******")
        assert self.client.login(username=self.user.username,
                                 password="******")

        git_obj = self.repo.open(self.path)
        self.git_obj = git_obj

        if git_obj.type == pygit2.GIT_OBJ_BLOB:
            # Permission to parent path
            parent = self.path.parent
            self.permission = factories.TreePermissionFactory(
                parent_path=parent.parent, name=parent.name, user=self.user)

            # Blob object
            self.blob = factories.BlobFactory.from_blob(self.git_obj)
        elif git_obj.type == pygit2.GIT_OBJ_TREE:
            # Permission to itself
            factories.TreePermissionFactory(parent_path=self.path.parent,
                                            name=self.path.name,
                                            user=self.user)
Exemplo n.º 2
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)
Exemplo n.º 3
0
 def setUp(self):
     self.anonymous = factories.AnonymousUserFactory()
     self.superuser = factories.SuperUserFactory()
     self.user = factories.UserFactory(username="******")
     self.other_user = factories.UserFactory(username="******")
     self.permission = factories.TreePermissionFactory(
         parent_path="my/path", name="my_name", user=self.user)
Exemplo n.º 4
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)

        factories.TreePermissionFactory(parent_path=self.path.parent_path, name=self.path.name, user=user)
        response = self.client.get(reverse('repo_browse', args=[self.path]))
        self.assertEqual(response.status_code, 200)
Exemplo n.º 5
0
    def test_post(self):
        user = factories.UserFactory()
        factories.TreePermissionFactory(parent_path=self.path.parent_path, name=self.path.name, user=user)

        response = self.client.post(reverse('tree_shares', args=[self.path]))
        self.assertEqual(response.status_code, 200)

        data = {'users': user.pk}
        response = self.client.post(reverse('tree_shares', args=[self.path]), data=data)
        self.assertEqual(response.status_code, 302)

        self.assertFalse(
            models.TreePermission.objects.filter(parent_path="foo/bar", name="baz", user=user).exists()
        )

        # Re-remove the same
        response = self.client.post(reverse('tree_shares', args=[self.path]), data=data)
        self.assertEqual(response.status_code, 200)