Exemple #1
0
 def test_current_users(self):
     user1 = factories.UserFactory()
     user2 = factories.UserFactory()
     current_user_ids = [user1.pk]
     form = forms.AddUsersForm(current_user_ids)
     self.assertNotIn(user1, form.fields['users'].queryset)
     self.assertIn(user2, form.fields['users'].queryset)
 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)
Exemple #3
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)
Exemple #4
0
    def test_post(self):
        user = factories.UserFactory()

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

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

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

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

        # Re-add the same
        response = self.client.post(reverse("tree_share", args=[self.path]),
                                    data=data)
        self.assertEqual(response.status_code, 200)
Exemple #5
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)
Exemple #6
0
 def test_label_from_instance(self):
     user = factories.UserFactory(first_name="John",
                                  last_name="Doe",
                                  email="*****@*****.**")
     field = forms.UsersChoiceField()
     choice = field.choices.choice(user)
     self.assertEqual(choice, (user.pk, "John Doe <*****@*****.**>"))
Exemple #7
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"))
Exemple #8
0
    def test_check_permission(self):
        user = factories.UserFactory(password="******")
        assert self.client.login(username=user.username, password="******")
        response = self.client.get(reverse("repo_browse", args=[""]))
        self.assertEqual(response.status_code, 403)

        superuser = factories.SuperUserFactory(password="******")
        assert self.client.login(username=superuser.username, password="******")
        response = self.client.get(reverse("repo_browse", args=[""]))
        self.assertEqual(response.status_code, 200)
Exemple #9
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])
Exemple #10
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)
Exemple #11
0
    def test_check_permissions(self):
        view = views.DummyRepositoryView()
        self.assertRaises(NotImplementedError, view.check_permissions)

        request = RequestFactory()
        request.user = factories.UserFactory()
        view = views.DummyAdminShareView(request=request, path=Path(""))
        self.assertRaises(PermissionDenied, view.check_permissions)

        request = RequestFactory()
        request.user = factories.SuperUserFactory()
        view = views.DummyAdminShareView(request=request, path=Path(""))
        self.assertIsNone(view.check_permissions())
Exemple #12
0
    def test_set_author(self):
        user = factories.UserFactory(first_name="John",
                                     last_name="Doe",
                                     email="*****@*****.**")

        self.storage.save("toto.txt", SimpleUploadedFile("toto.txt", b'toto'))
        commit = self.storage.repository.commit

        self.assertEqual(commit.author.name, "Git Storage")
        self.assertEqual(commit.author.email, "git@storage")

        self.storage.set_author(user)

        self.storage.save("toto.txt", SimpleUploadedFile("toto.txt", b'toto'))
        commit = self.storage.repository.commit

        self.assertEqual(commit.author.name, "John Doe")
        self.assertEqual(commit.author.email, "*****@*****.**")
Exemple #13
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)
Exemple #14
0
 def test_password(self):
     user = factories.UserFactory(password="******")
     self.assertTrue(user.check_password("passwd"))
     self.assertFalse(user.check_password("password"))
Exemple #15
0
 def test_user(self):
     factories.UserFactory(username="******")
     field = forms.UsersChoiceField()
     self.assertQuerysetEqual(field.queryset, ["john_doe"],
                              transform=lambda obj: obj.username)