Пример #1
0
 def test_maybe_pluralize(self):
     self.assertEqual(utils.maybe_pluralize(0, 'Article', 'Articles'),
                      '0 Articles')
     self.assertEqual(utils.maybe_pluralize(1, 'Article', 'Articles'),
                      '1 Article')
     self.assertEqual(utils.maybe_pluralize(2, 'Article', 'Articles'),
                      '2 Articles')
    def test_pluralize_words_returns_correct_grammar(self):
        # maybe_pluralize() in utils.py
        zero_count = utils.maybe_pluralize(0, 'Word', 'Words')
        one_count = utils.maybe_pluralize(1, 'Word', 'Words')
        more_than_one = utils.maybe_pluralize(3, 'Word', 'Words')

        self.assertTrue(zero_count == '0 Words')
        self.assertTrue(one_count == '1 Word')
        self.assertTrue(more_than_one == '3 Words')
Пример #3
0
 def test_maybe_pluralize(self):
     self.assertEqual(
         utils.maybe_pluralize(0, 'Article', 'Articles'),
         '0 Articles')
     self.assertEqual(
         utils.maybe_pluralize(1, 'Article', 'Articles'),
         '1 Article')
     self.assertEqual(
         utils.maybe_pluralize(2, 'Article', 'Articles'),
         '2 Articles')
Пример #4
0
    def run(self):
        """Run the generators and return"""
        start_time = time.time()

        context = self.settings.copy()
        # Share these among all the generators and content objects:
        context['filenames'] = {}  # maps source path to Content object or None
        context['localsiteurl'] = self.settings['SITEURL']

        generators = [
            cls(
                context=context,
                settings=self.settings,
                path=self.path,
                theme=self.theme,
                output_path=self.output_path,
            ) for cls in self.get_generator_classes()
        ]

        # erase the directory if it is not the source and if that's
        # explicitly asked
        if (self.delete_outputdir and not
                os.path.realpath(self.path).startswith(self.output_path)):
            clean_output_dir(self.output_path, self.output_retention)

        for p in generators:
            if hasattr(p, 'generate_context'):
                p.generate_context()

        signals.all_generators_finalized.send(generators)

        writer = self.get_writer()

        for p in generators:
            if hasattr(p, 'generate_output'):
                p.generate_output(writer)

        signals.finalized.send(self)

        articles_generator = next(g for g in generators
                                  if isinstance(g, ArticlesGenerator))
        pages_generator = next(g for g in generators
                               if isinstance(g, PagesGenerator))

        pluralized_articles = maybe_pluralize(
            (len(articles_generator.articles) +
             len(articles_generator.translations)),
            'article',
            'articles')
        pluralized_drafts = maybe_pluralize(
            (len(articles_generator.drafts) +
             len(articles_generator.drafts_translations)),
            'draft',
            'drafts')
        pluralized_pages = maybe_pluralize(
            (len(pages_generator.pages) +
             len(pages_generator.translations)),
            'page',
            'pages')
        pluralized_hidden_pages = maybe_pluralize(
            (len(pages_generator.hidden_pages) +
             len(pages_generator.hidden_translations)),
            'hidden page',
            'hidden pages')

        print('Done: Processed {}, {}, {} and {} in {:.2f} seconds.'.format(
            pluralized_articles,
            pluralized_drafts,
            pluralized_pages,
            pluralized_hidden_pages,
            time.time() - start_time))
Пример #5
0
    def run(self):
        """Run the generators and return"""
        start_time = time.time()

        context = self.settings.copy()
        # Share these among all the generators and content objects:
        context['filenames'] = {}  # maps source path to Content object or None
        context['localsiteurl'] = self.settings['SITEURL']

        generators = [
            cls(
                context=context,
                settings=self.settings,
                path=self.path,
                theme=self.theme,
                output_path=self.output_path,
            ) for cls in self.get_generator_classes()
        ]

        # erase the directory if it is not the source and if that's
        # explicitly asked
        if (self.delete_outputdir and not
                os.path.realpath(self.path).startswith(self.output_path)):
            clean_output_dir(self.output_path, self.output_retention)

        for p in generators:
            if hasattr(p, 'generate_context'):
                p.generate_context()

        for p in generators:
            if hasattr(p, 'refresh_metadata_intersite_links'):
                p.refresh_metadata_intersite_links()

        signals.all_generators_finalized.send(generators)

        writer = self.get_writer()

        for p in generators:
            if hasattr(p, 'generate_output'):
                p.generate_output(writer)

        signals.finalized.send(self)

        articles_generator = next(g for g in generators
                                  if isinstance(g, ArticlesGenerator))
        pages_generator = next(g for g in generators
                               if isinstance(g, PagesGenerator))

        pluralized_articles = maybe_pluralize(
            (len(articles_generator.articles) +
             len(articles_generator.translations)),
            'article',
            'articles')
        pluralized_drafts = maybe_pluralize(
            (len(articles_generator.drafts) +
             len(articles_generator.drafts_translations)),
            'draft',
            'drafts')
        pluralized_pages = maybe_pluralize(
            (len(pages_generator.pages) +
             len(pages_generator.translations)),
            'page',
            'pages')
        pluralized_hidden_pages = maybe_pluralize(
            (len(pages_generator.hidden_pages) +
             len(pages_generator.hidden_translations)),
            'hidden page',
            'hidden pages')
        pluralized_draft_pages = maybe_pluralize(
            (len(pages_generator.draft_pages) +
             len(pages_generator.draft_translations)),
            'draft page',
            'draft pages')

        print('Done: Processed {}, {}, {}, {} and {} in {:.2f} seconds.'
              .format(
                    pluralized_articles,
                    pluralized_drafts,
                    pluralized_pages,
                    pluralized_hidden_pages,
                    pluralized_draft_pages,
                    time.time() - start_time))
Пример #6
0
    def run(self):
        """Run the generators and return"""
        start_time = time.time()

        context = self.settings.copy()
        # Share these among all the generators and content objects
        # They map source paths to Content objects or None
        context['generated_content'] = {}
        context['static_links'] = set()
        context['static_content'] = {}
        context['localsiteurl'] = self.settings['SITEURL']

        generators = [
            cls(
                context=context,
                settings=self.settings,
                path=self.path,
                theme=self.theme,
                output_path=self.output_path,
            ) for cls in self._get_generator_classes()
        ]

        # Delete the output directory if (1) the appropriate setting is True
        # and (2) that directory is not the parent of the source directory
        if (self.delete_outputdir and os.path.commonpath(
            [os.path.realpath(self.output_path)]) != os.path.commonpath([
                os.path.realpath(self.output_path),
                os.path.realpath(self.path)
            ])):
            clean_output_dir(self.output_path, self.output_retention)

        for p in generators:
            if hasattr(p, 'generate_context'):
                p.generate_context()

        for p in generators:
            if hasattr(p, 'refresh_metadata_intersite_links'):
                p.refresh_metadata_intersite_links()

        signals.all_generators_finalized.send(generators)

        writer = self._get_writer()

        for p in generators:
            if hasattr(p, 'generate_output'):
                p.generate_output(writer)

        signals.finalized.send(self)

        articles_generator = next(g for g in generators
                                  if isinstance(g, ArticlesGenerator))
        pages_generator = next(g for g in generators
                               if isinstance(g, PagesGenerator))

        pluralized_articles = maybe_pluralize(
            (len(articles_generator.articles) +
             len(articles_generator.translations)), 'article', 'articles')
        pluralized_drafts = maybe_pluralize(
            (len(articles_generator.drafts) +
             len(articles_generator.drafts_translations)), 'draft', 'drafts')
        pluralized_hidden_articles = maybe_pluralize(
            (len(articles_generator.hidden_articles) +
             len(articles_generator.hidden_translations)), 'hidden article',
            'hidden articles')
        pluralized_pages = maybe_pluralize(
            (len(pages_generator.pages) + len(pages_generator.translations)),
            'page', 'pages')
        pluralized_hidden_pages = maybe_pluralize(
            (len(pages_generator.hidden_pages) +
             len(pages_generator.hidden_translations)), 'hidden page',
            'hidden pages')
        pluralized_draft_pages = maybe_pluralize(
            (len(pages_generator.draft_pages) +
             len(pages_generator.draft_translations)), 'draft page',
            'draft pages')

        console.print(
            'Done: Processed {}, {}, {}, {}, {} and {} in {:.2f} seconds.'.
            format(pluralized_articles, pluralized_drafts,
                   pluralized_hidden_articles, pluralized_pages,
                   pluralized_hidden_pages, pluralized_draft_pages,
                   time.time() - start_time))