コード例 #1
0
    def test_version_copy_adds_correct_locked_user(self):
        """
        A copied version creates a lock for the user that copied the version.
        The users should not be the same.
        """
        original_user = factories.UserFactory()
        original_version = factories.PollVersionFactory(created_by=original_user)
        copy_user = factories.UserFactory()
        copied_version = original_version.copy(copy_user)

        self.assertNotEqual(original_user, copy_user)
        self.assertEqual(original_version.versionlock.created_by, original_user)
        self.assertEqual(copied_version.versionlock.created_by, copy_user)
コード例 #2
0
    def test_unlock_link_only_present_for_draft_versions(self):
        draft_version = factories.PollVersionFactory(
            created_by=self.user_author)
        published_version = Version.objects.create(
            content=factories.PollContentFactory(
                poll=draft_version.content.poll),
            created_by=factories.UserFactory(),
            state=constants.PUBLISHED)
        draft_unlock_url = self.get_admin_url(
            self.versionable.version_model_proxy, 'unlock', draft_version.pk)
        draft_unlock_control = render_to_string(
            'djangocms_version_locking/admin/unlock_icon.html',
            {'unlock_url': draft_unlock_url})
        published_unlock_url = self.get_admin_url(
            self.versionable.version_model_proxy, 'unlock',
            published_version.pk)
        published_unlock_control = render_to_string(
            'djangocms_version_locking/admin/unlock_icon.html',
            {'unlock_url': published_unlock_url})
        changelist_url = version_list_url(draft_version.content)

        with self.login_user_context(self.superuser):
            response = self.client.post(changelist_url)

        # The draft version unlock control exists
        self.assertContains(response, draft_unlock_control, html=True)
        # The published version exists
        self.assertNotContains(response, published_unlock_control, html=True)
コード例 #3
0
    def test_published_version_copy_creates_draft_lock(self):
        """
        A version lock is created for a published version copied from a draft version
        """
        user = factories.UserFactory()
        published_version = factories.PollVersionFactory(state=constants.PUBLISHED)
        new_version = published_version.copy(user)

        self.assertTrue(hasattr(new_version, 'versionlock'))
コード例 #4
0
    def test_draft_version_copy_creates_draft_lock(self):
        """
        A version lock is created for a new draft version copied from a draft version
        """
        user = factories.UserFactory()
        draft_version = factories.PollVersionFactory(state=constants.DRAFT)
        new_version = draft_version.copy(user)

        self.assertTrue(hasattr(new_version, 'versionlock'))
コード例 #5
0
    def test_unpublish_link_not_present_for_published_version(self):
        draft_version = factories.PollVersionFactory(
            created_by=self.user_author)
        published_version = Version.objects.create(
            content=factories.PollContentFactory(
                poll=draft_version.content.poll),
            created_by=factories.UserFactory(),
            state=constants.PUBLISHED)

        with self.login_user_context(self.superuser):
            request = RequestFactory()
            request.user = self.superuser
            unpublish_url = self.version_admin._get_unpublish_link(
                published_version, request)
            self.assertNotIn("inactive", unpublish_url)

        with self.login_user_context(self.user_author):
            request = RequestFactory()
            request.user = factories.UserFactory()
            unpublish_url = self.version_admin._get_unpublish_link(
                draft_version, request)
            self.assertEqual("", unpublish_url)
コード例 #6
0
    def test_user_does_not_have_change_permission(self):
        """
        A different user from the user who created
        the version does not have permission to change it
        """
        author = factories.UserFactory(is_staff=True)
        content = factories.PollVersionFactory(state=DRAFT, created_by=author)
        url = self.get_admin_url(self.versionable.version_model_proxy,
                                 'change', content.pk)

        with self.login_user_context(self.user_has_change_perms):
            response = self.client.get(url)

        self.assertEqual(response.status_code, 403)
コード例 #7
0
    def test_user_does_not_have_change_permission(self):
        """
        Test that a different user from the  user who created
        the version does not have permission to change it
        """
        author = factories.UserFactory()
        editor = self.get_superuser()
        content = factories.PollVersionFactory(state=DRAFT, created_by=author)
        url = self.get_admin_url(PollContent, 'change', content.pk)

        with self.login_user_context(editor):
            response = self.client.get(url)

        self.assertEqual(response.status_code, 403)