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')
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 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))
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))
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))