class TestPublicSymlinkUnicode(TempSiterootCase, TestCase):

    def setUp(self):
        super(TestPublicSymlinkUnicode, self).setUp()
        self.project = get(Project, slug='kong', name=u'foo-∫',
                           main_language_project=None)
        self.project.save()
        self.stable = get(Version, slug='foo-a', verbose_name=u'foo-∂',
                          active=True, project=self.project)
        self.symlink = PublicSymlink(self.project)

    def test_symlink_no_error(self):
        try:
            self.symlink.run()
        except:
            self.fail('Symlink run raised an exception on unicode slug')
class TestPublicSymlinkUnicode(TempSiterootCase, TestCase):

    def setUp(self):
        super(TestPublicSymlinkUnicode, self).setUp()
        self.project = get(Project, slug='kong', name=u'foo-∫',
                           main_language_project=None)
        self.project.save()
        self.stable = get(Version, slug='foo-a', verbose_name=u'foo-∂',
                          active=True, project=self.project)
        self.symlink = PublicSymlink(self.project)

    def test_symlink_no_error(self):
        try:
            self.symlink.run()
        except:
            self.fail('Symlink run raised an exception on unicode slug')
class TestPublicSymlinkUnicode(TestCase):
    def setUp(self):
        self.project = get(Project, slug="kong", name=u"foo-∫")
        self.stable = get(Version, slug="stable", verbose_name=u"foo-∂", active=True, project=self.project)
        self.symlink = PublicSymlink(self.project)
        self.args = {
            "project_root": self.symlink.project_root,
            "latest_path": self.project.rtd_build_path("latest"),
            "stable_path": self.project.rtd_build_path("stable"),
        }
        self.commands = []

    @patched
    def test_symlink_no_error(self):
        # Don't raise an error.
        self.symlink.run()
        self.assertTrue(True)
class TestPublicSymlinkUnicode(TestCase):

    def setUp(self):
        self.project = get(Project, slug='kong', name=u'foo-∫')
        self.stable = get(
            Version, slug='stable', verbose_name=u'foo-∂', active=True, project=self.project)
        self.symlink = PublicSymlink(self.project)
        self.args = {
            'project_root': self.symlink.project_root,
            'latest_path': self.project.rtd_build_path('latest'),
            'stable_path': self.project.rtd_build_path('stable'),
        }
        self.commands = []

    @patched
    def test_symlink_no_error(self):
        # Don't raise an error.
        self.symlink.run()
        self.assertTrue(True)
Ejemplo n.º 5
0
class TestPublicSymlinkUnicode(TestCase):
    def setUp(self):
        self.project = get(Project, slug='kong', name=u'foo-∫')
        self.stable = get(Version,
                          slug='stable',
                          verbose_name=u'foo-∂',
                          active=True,
                          project=self.project)
        self.symlink = PublicSymlink(self.project)
        self.args = {
            'project_root': self.symlink.project_root,
            'latest_path': self.project.rtd_build_path('latest'),
            'stable_path': self.project.rtd_build_path('stable'),
        }
        self.commands = []

    @patched
    def test_symlink_no_error(self):
        # Don't raise an error.
        self.symlink.run()
        self.assertTrue(True)
Ejemplo n.º 6
0
class TestPublicSymlinkUnicode(TempSiterootCase, TestCase):
    def setUp(self):
        super(TestPublicSymlinkUnicode, self).setUp()
        self.project = get(Project,
                           slug='kong',
                           name=u'foo-∫',
                           main_language_project=None)
        self.project.save()
        self.stable = get(Version,
                          slug='foo-a',
                          verbose_name=u'foo-∂',
                          active=True,
                          project=self.project)
        self.symlink = PublicSymlink(self.project)

    def test_symlink_no_error(self):
        try:
            self.symlink.run()
        except:
            self.fail('Symlink run raised an exception on unicode slug')

    def test_symlink_broadcast_calls_on_project_save(self):
        """
        Test calls to ``readthedocs.core.utils.broadcast`` on Project.save().

        When a Project is saved, we need to check that we are calling
        ``broadcast`` utility with the proper task and arguments to re-symlink
        them.
        """
        with mock.patch('readthedocs.projects.models.broadcast') as broadcast:
            project = get(Project)
            # skipped on first save
            broadcast.assert_not_called()

            broadcast.reset_mock()
            project.description = 'New description'
            project.save()
            # called once for this project itself
            broadcast.assert_any_calls(
                type='app',
                task=symlink_project,
                args=[project.pk],
            )

            broadcast.reset_mock()
            subproject = get(Project)
            # skipped on first save
            broadcast.assert_not_called()

            project.add_subproject(subproject)
            # subproject.save() is not called
            broadcast.assert_not_called()

            subproject.description = 'New subproject description'
            subproject.save()
            # subproject symlinks
            broadcast.assert_any_calls(
                type='app',
                task=symlink_project,
                args=[subproject.pk],
            )
            # superproject symlinks
            broadcast.assert_any_calls(
                type='app',
                task=symlink_project,
                args=[project.pk],
            )
class TestPublicSymlinkUnicode(TempSiterootCase, TestCase):

    def setUp(self):
        super(TestPublicSymlinkUnicode, self).setUp()
        self.project = get(Project, slug='kong', name=u'foo-∫',
                           main_language_project=None)
        self.project.save()
        self.stable = get(Version, slug='foo-a', verbose_name=u'foo-∂',
                          active=True, project=self.project)
        self.symlink = PublicSymlink(self.project)

    def test_symlink_no_error(self):
        try:
            self.symlink.run()
        except:
            self.fail('Symlink run raised an exception on unicode slug')

    def test_symlink_broadcast_calls_on_project_save(self):
        """
        Test calls to ``readthedocs.core.utils.broadcast`` on Project.save().

        When a Project is saved, we need to check that we are calling
        ``broadcast`` utility with the proper task and arguments to re-symlink
        them.
        """
        with mock.patch('readthedocs.projects.models.broadcast') as broadcast:
            project = get(Project)
            # skipped on first save
            broadcast.assert_not_called()

            broadcast.reset_mock()
            project.description = 'New description'
            project.save()
            # called once for this project itself
            broadcast.assert_any_calls(
                type='app',
                task=symlink_project,
                args=[project.pk],
            )

            broadcast.reset_mock()
            subproject = get(Project)
            # skipped on first save
            broadcast.assert_not_called()

            project.add_subproject(subproject)
            # subproject.save() is not called
            broadcast.assert_not_called()

            subproject.description = 'New subproject description'
            subproject.save()
            # subproject symlinks
            broadcast.assert_any_calls(
                type='app',
                task=symlink_project,
                args=[subproject.pk],
            )
            # superproject symlinks
            broadcast.assert_any_calls(
                type='app',
                task=symlink_project,
                args=[project.pk],
            )