Ejemplo n.º 1
0
    def runTest(self):
        db_empty_page_list()
        root = db_create_root_page()
        published_pages = PublishedPages()
        self.assertTrue(published_pages.has_size(1))
        page = db_add_empty_page('Test', parent=root)
        publish_pages(page)
        self.assertIsNotNone(page)
        published_pages.update()
        self.assertTrue(published_pages.has_size(2))
        self.assertEqual(page.placeholders.count(), 1)
        placeholder = page.placeholders.all()[0]
        add_plugin(placeholder, 'TextPlugin', DEFAULT_LANG, body='')
        add_plugin(placeholder, 'TextPlugin', DEFAULT_LANG, body='')
        add_plugin(placeholder, 'TextPlugin', DEFAULT_LANG, body='')
        plugins = placeholder.get_plugins()
        self.assertEqual(plugins.count(), 3)

        article_page = ArticlePage('Test', 'test')
        self.assertIsNotNone(article_page)
        article_page.publish()
        published_pages.update()
        self.assertTrue(published_pages.has_size(2))
        self.assertEqual(article_page.page.placeholders.count(), 1)
        placeholder = article_page.page.placeholders.all()[0]
        plugins = placeholder.get_plugins()
        self.assertEqual(plugins.count(), 1)
        self.assertIsInstance(plugins[0].get_plugin_instance()[0], RawHtml)
Ejemplo n.º 2
0
 def runTest(self):
     db_empty_page_list()
     root = db_create_root_page()
     snappy_page = db_add_empty_page('Snappy', root)
     build_apps = db_add_empty_page('Build Apps', snappy_page)
     publish_pages([snappy_page, build_apps])
     ExternalDocsBranch.objects.all().delete()
     ExternalDocsBranchImportDirective.objects.all().delete()
     ImportedArticle.objects.all().delete()
     branch, created = ExternalDocsBranch.objects.get_or_create(
         origin=os.path.join(os.path.dirname(__file__),
                             'data/snapcraft-test'),
         branch_name='')
     a, created = ExternalDocsBranchImportDirective.objects.get_or_create(
         import_from='README.md',
         write_to='snappy/build-apps/devel',
         external_docs_branch=branch)
     b, created = ExternalDocsBranchImportDirective.objects.get_or_create(
         import_from='docs',
         write_to='snappy/build-apps/devel',
         external_docs_branch=branch)
     c, created = ExternalDocsBranchImportDirective.objects.get_or_create(
         import_from='HACKING.md',
         write_to='snappy/build-apps/devel/hacking',
         external_docs_branch=branch)
     self.assertIsNotNone(process_branch(branch))
     for imported_article in ImportedArticle.objects.all():
         self.assertTrue(check_imported_article(imported_article))
Ejemplo n.º 3
0
    def runTest(self):
        db_empty_page_list()
        root = db_create_root_page()
        snappy_page = db_add_empty_page('Snappy', root)
        build_apps = db_add_empty_page('Build Apps',
                                       snappy_page,
                                       slug='build-apps')
        publish_pages([snappy_page, build_apps])
        ExternalDocsBranch.objects.all().delete()
        ExternalDocsBranchImportDirective.objects.all().delete()
        ImportedArticle.objects.all().delete()
        branch, created = ExternalDocsBranch.objects.get_or_create(
            origin=os.path.join(os.path.dirname(__file__),
                                'data/snapcraft-test'),
            branch_name='')
        a, created = ExternalDocsBranchImportDirective.objects.get_or_create(
            import_from='docs/intro.md',
            write_to='snappy/build-apps',
            external_docs_branch=branch)
        b, created = ExternalDocsBranchImportDirective.objects.get_or_create(
            import_from='docs',
            write_to='snappy/build-apps',
            external_docs_branch=branch)
        repo = process_branch(branch)
        self.assertTrue(check_repo(repo))
        self.assertGreater(len(repo.pages), 10)
        self.assertTrue(
            repo.contains_page('/{}/snappy/build-apps/'.format(DEFAULT_LANG)))
        published_pages = PublishedPages()
        self.assertTrue(
            published_pages.contains_url(
                '/{}/snappy/build-apps/'.format(DEFAULT_LANG)))
        self.assertTrue(published_pages.has_at_least_size(10))
        for imported_article in ImportedArticle.objects.all():
            self.assertTrue(check_imported_article(imported_article))

        # Run the import a second time
        repo = process_branch(branch)
        self.assertTrue(check_repo(repo))
        self.assertGreater(len(repo.pages), 10)
        self.assertTrue(
            repo.contains_page('/{}/snappy/build-apps/'.format(DEFAULT_LANG)))
        published_pages.update()
        self.assertTrue(
            published_pages.contains_url(
                '/{}/snappy/build-apps/'.format(DEFAULT_LANG)))
        self.assertTrue(published_pages.has_at_least_size(10))
        for imported_article in ImportedArticle.objects.all():
            self.assertTrue(check_imported_article(imported_article))
Ejemplo n.º 4
0
    def handle(self, *args, **options):
        """
        Create published public version of selected drafts.
        """
        include_unpublished = options.get("include_unpublished")
        language = options.get("language")
        site = self.get_site(options.get("site"))

        # we need a super user to assign the publish action to
        try:
            user = get_user_model().objects.filter(is_active=True, is_staff=True, is_superuser=True)[0]
        except IndexError:
            raise CommandError("No super user found, create one using `manage.py createsuperuser`.")
        # set him as current user
        set_current_user(user)

        pages_published = 0
        pages_total = 0
        self.stdout.write("\nPublishing public drafts....\n")
        index = 0
        for page, add in publish_pages(include_unpublished, language, site):
            m = "*" if add else " "
            self.stdout.write("%d.\t%s  %s [%d]\n" % (index + 1, m, force_text(page), page.id))
            pages_total += 1
            if add:
                pages_published += 1
            index += 1

        self.stdout.write("\n")
        self.stdout.write("=" * 40)
        self.stdout.write("\nTotal:     %s\n" % pages_total)
        self.stdout.write("Published: %s\n" % pages_published)
Ejemplo n.º 5
0
    def handle(self, *args, **options):
        """
        Create published public version of selected drafts.
        """
        include_unpublished = options.get('include_unpublished')
        language = options.get('language')
        site = self.get_site(options.get('site'))

        # we need a super user to assign the publish action to
        try:
            user = get_user_model().objects.filter(is_active=True, is_staff=True, is_superuser=True)[0]
        except IndexError:
            raise CommandError('No super user found, create one using `manage.py createsuperuser`.')
        # set him as current user
        set_current_user(user)

        pages_published = 0
        pages_total = 0
        self.stdout.write('\nPublishing public drafts....\n')
        index = 0
        for page, add in publish_pages(include_unpublished, language, site):
            m = '*' if add else ' '
            self.stdout.write('%d.\t%s  %s [%d]\n' % (index + 1, m, force_text(page), page.id))
            pages_total += 1
            if add:
                pages_published += 1
            index += 1

        self.stdout.write('\n')
        self.stdout.write('=' * 40)
        self.stdout.write('\nTotal:     %s\n' % pages_total)
        self.stdout.write('Published: %s\n' % pages_published)
 def runTest(self):
     self.create_repo('data/snappy-test')
     snappy_page = db_add_empty_page('Snappy', self.root)
     guides = db_add_empty_page('Guides', snappy_page)
     publish_pages([snappy_page, guides])
     self.assertTrue(isinstance(self.repo, Repo))
     self.repo.add_directive('docs', 'snappy/guides/devel')
     self.assertTrue(self.repo.execute_import_directives())
     self.assertTrue(self.repo.publish())
     for article in self.repo.imported_articles:
         self.assertTrue(isinstance(article, Article))
     self.assertGreater(len(self.repo.pages), 0)
     devel = Page.objects.filter(parent=guides.get_public_object())
     self.assertEqual(devel.count(), 1)
     published_pages = PublishedPages()
     for page in published_pages.pages:
         if page not in [self.root, snappy_page, guides, devel[0]]:
             self.assertEqual(page.parent, devel[0])
Ejemplo n.º 7
0
    def handle_noargs(self, **options):
        """Create published public version of selected drafts.
        """
        include_unpublished = options.get('include_unpublished')
        language = options.get('language')
        site = options.get('site')
        if site:
            try:
                site = int(site)
                site = Site.objects.get(pk=site)
            except (ValueError, Site.DoesNotExist):
                raise CommandError("There is no site with given site id.")
        else:
            site = None

        try:
            user = get_user_model().objects.filter(is_active=True,
                                                   is_staff=True,
                                                   is_superuser=True)[0]
        except IndexError:
            raise CommandError(
                "No super user found, create one using `manage.py createsuperuser`."
            )

        set_current_user(user)  # set him as current user

        pages_published = 0
        pages_total = 0
        self.stdout.write(u"\nPublishing public drafts....\n")
        index = 0
        for page, add in publish_pages(include_unpublished, language, site):
            m = '*' if add else ' '
            self.stdout.write(u"%d.\t%s  %s [%d]\n" %
                              (index + 1, m, force_text(page), page.id))
            pages_total += 1
            if add:
                pages_published += 1
            index += 1

        self.stdout.write(u"\n")
        self.stdout.write(u"=" * 40)
        self.stdout.write(u"\nTotal:     %s\n" % pages_total)
        self.stdout.write(u"Published: %s\n" % pages_published)
Ejemplo n.º 8
0
    def handle_noargs(self, **options):
        """Create published public version of selected drafts.
        """
        include_unpublished = options.get('include_unpublished')
        language = options.get('language')
        site = options.get('site')
        if site:
            try:
                site = int(site)
                site = Site.objects.get(pk=site)
            except (ValueError, Site.DoesNotExist):
                raise CommandError("There is no site with given site id.")
        else:
            site = None

        try:
            user = get_user_model().objects.filter(is_active=True, is_staff=True, is_superuser=True)[0]
        except IndexError:
            raise CommandError("No super user found, create one using `manage.py createsuperuser`.")

        set_current_user(user) # set him as current user

        pages_published = 0
        pages_total = 0
        self.stdout.write(u"\nPublishing public drafts....\n")
        index = 0
        for page, add in publish_pages(include_unpublished, language, site):
            m = '*' if add else ' '
            self.stdout.write(u"%d.\t%s  %s [%d]\n" % (index + 1, m, force_text(page), page.id))
            pages_total += 1
            if add:
                pages_published += 1
            index += 1

        self.stdout.write(u"\n")
        self.stdout.write(u"=" * 40)
        self.stdout.write(u"\nTotal:     %s\n" % pages_total)
        self.stdout.write(u"Published: %s\n" % pages_published)
Ejemplo n.º 9
0
 def runTest(self):
     self.create_repo('data/website-test')
     snappy_page = db_add_empty_page('Snappy', self.root)
     start = db_add_empty_page(
         'Get started', parent=snappy_page, slug='start')
     as_dev = db_add_empty_page(
         'As developer', parent=start, slug='as-dev')
     page_16_04 = db_add_empty_page(
         '16.04', parent=as_dev, slug='16-04')
     publish_pages([snappy_page, start, as_dev, page_16_04])
     self.assertTrue(isinstance(self.repo, Repo))
     self.repo.add_directive('out/get-started/as-dev/index.html',
                             'snappy/start/as-dev')
     self.repo.add_directive('out/get-started/as-dev/16.04/index.html',
                             'snappy/start/as-dev/16-04')
     self.repo.add_directive('out/get-started/as-dev/16.04',
                             'snappy/start/as-dev/16-04')
     self.assertTrue(self.repo.execute_import_directives())
     self.assertTrue(self.repo.publish())
     self.assertGreater(len(self.repo.pages), 10)
     published_pages = PublishedPages()
     expected_urls = [
         '/en/',
         '/en/snappy/',
         '/en/snappy/start/',
         '/en/snappy/start/as-dev/',
         '/en/snappy/start/as-dev/16-04/',
         '/en/snappy/start/as-dev/16-04/step2-setup-azure-macos/',
         '/en/snappy/start/as-dev/16-04/step2-setup-azure-ubuntu/',
         '/en/snappy/start/as-dev/16-04/step2-setup-azure-windows/',
         '/en/snappy/start/as-dev/16-04/step2-setup-beaglebone-macos/',
         '/en/snappy/start/as-dev/16-04/step2-setup-beaglebone-ubuntu/',
         '/en/snappy/start/as-dev/16-04/step2-setup-beaglebone-windows/',
         '/en/snappy/start/as-dev/16-04/step2-setup-dragonboard-macos/',
         '/en/snappy/start/as-dev/16-04/step2-setup-dragonboard-ubuntu/',
         '/en/snappy/start/as-dev/16-04/step2-setup-dragonboard-windows/',
         '/en/snappy/start/as-dev/16-04/step2-setup-ec2-macos/',
         '/en/snappy/start/as-dev/16-04/step2-setup-ec2-ubuntu/',
         '/en/snappy/start/as-dev/16-04/step2-setup-ec2-windows/',
         '/en/snappy/start/as-dev/16-04/step2-setup-gce-macos/',
         '/en/snappy/start/as-dev/16-04/step2-setup-gce-ubuntu/',
         '/en/snappy/start/as-dev/16-04/step2-setup-gce-windows/',
         '/en/snappy/start/as-dev/16-04/step2-setup-intel-nuc-macos/',
         '/en/snappy/start/as-dev/16-04/step2-setup-intel-nuc-ubuntu/',
         '/en/snappy/start/as-dev/16-04/step2-setup-intel-nuc-windows/',
         '/en/snappy/start/as-dev/16-04/step2-setup-kvm-macos/',
         '/en/snappy/start/as-dev/16-04/step2-setup-kvm-ubuntu/',
         '/en/snappy/start/as-dev/16-04/step2-setup-kvm-windows/',
         '/en/snappy/start/as-dev/16-04/step2-setup-rpi2-macos/',
         '/en/snappy/start/as-dev/16-04/step2-setup-rpi2-ubuntu/',
         '/en/snappy/start/as-dev/16-04/step2-setup-rpi2-windows/',
         '/en/snappy/start/as-dev/16-04/step2-setup-vagrant-macos/',
         '/en/snappy/start/as-dev/16-04/step2-setup-vagrant-ubuntu/',
         '/en/snappy/start/as-dev/16-04/step2-setup-vagrant-windows/',
         '/en/snappy/start/as-dev/16-04/step2-setup-x86-device-macos/',
         '/en/snappy/start/as-dev/16-04/step2-setup-x86-device-ubuntu/',
         '/en/snappy/start/as-dev/16-04/step2-setup-x86-device-windows/',
         '/en/snappy/start/as-dev/16-04/step3-get-familiar/',
         '/en/snappy/start/as-dev/16-04/step4-first-snap/',
         '/en/snappy/start/as-dev/16-04/step5-further-readings/',
     ]
     self.assertTrue(published_pages.has_size(len(expected_urls)))
     for url in expected_urls:
         self.assertTrue(published_pages.contains_url(url))
Ejemplo n.º 10
0
    def runTest(self):
        db_empty_page_list()
        self.assertEqual(Page.objects.count(), 0)
        root = db_create_root_page()
        snappy_page = db_add_empty_page('Snappy', root)
        guides = db_add_empty_page('Guides', snappy_page)
        publish_pages([snappy_page, guides])
        published_pages = PublishedPages()
        self.assertTrue(published_pages.has_size(3))
        ExternalDocsBranch.objects.all().delete()
        ExternalDocsBranchImportDirective.objects.all().delete()
        ImportedArticle.objects.all().delete()

        # Snapcraft import definition
        snapcraft_branch, created = ExternalDocsBranch.objects.get_or_create(
            origin=os.path.join(os.path.dirname(__file__),
                                'data/snapcraft-test'),
            branch_name='')
        a, created = ExternalDocsBranchImportDirective.objects.get_or_create(
            import_from='docs/intro.md',
            write_to='snappy/build-apps',
            external_docs_branch=snapcraft_branch)
        b, created = ExternalDocsBranchImportDirective.objects.get_or_create(
            import_from='docs',
            write_to='snappy/build-apps',
            external_docs_branch=snapcraft_branch)

        # Snappy import definition
        snappy_branch, created = ExternalDocsBranch.objects.get_or_create(
            origin=os.path.join(os.path.dirname(__file__), 'data/snappy-test'),
            branch_name='')
        c, created = ExternalDocsBranchImportDirective.objects.get_or_create(
            import_from='docs',
            write_to='snappy/guides',
            external_docs_branch=snappy_branch)

        # Run the import a first time
        snapcraft_repo = process_branch(snapcraft_branch)
        self.assertTrue(check_repo(snapcraft_repo))
        self.assertGreater(len(snapcraft_repo.pages), 10)
        self.assertTrue(
            snapcraft_repo.contains_page(
                '/{}/snappy/build-apps/'.format(DEFAULT_LANG)))
        snappy_repo = process_branch(snappy_branch)
        self.assertTrue(check_repo(snappy_repo))
        self.assertGreater(len(snappy_repo.pages), 10)
        self.assertTrue(
            snappy_repo.contains_page(
                '/{}/snappy/guides/'.format(DEFAULT_LANG)))

        published_pages = PublishedPages()
        self.assertTrue(
            published_pages.contains_url(
                '/{}/snappy/build-apps/'.format(DEFAULT_LANG)))
        self.assertTrue(
            published_pages.contains_url(
                '/{}/snappy/guides/'.format(DEFAULT_LANG)))
        self.assertTrue(published_pages.has_at_least_size(20))
        for imported_article in ImportedArticle.objects.all():
            self.assertTrue(check_imported_article(imported_article))

        # Run the import a second time
        snapcraft_repo = process_branch(snapcraft_branch)
        self.assertTrue(check_repo(snapcraft_repo))
        self.assertGreater(len(snapcraft_repo.pages), 10)
        self.assertTrue(
            snapcraft_repo.contains_page(
                '/{}/snappy/build-apps/'.format(DEFAULT_LANG)))
        snappy_repo = process_branch(snappy_branch)
        self.assertTrue(check_repo(snappy_repo))
        self.assertGreater(len(snappy_repo.pages), 10)
        self.assertTrue(
            snappy_repo.contains_page(
                '/{}/snappy/guides/'.format(DEFAULT_LANG)))

        published_pages.update()
        self.assertTrue(
            published_pages.contains_url(
                '/{}/snappy/build-apps/'.format(DEFAULT_LANG)))
        self.assertTrue(
            published_pages.contains_url(
                '/{}/snappy/guides/'.format(DEFAULT_LANG)))
        self.assertTrue(published_pages.has_at_least_size(20))
        for imported_article in ImportedArticle.objects.all():
            self.assertTrue(check_imported_article(imported_article))