jenkins-bot has submitted this change and it was merged.
Change subject: Add unit tests for YearPageGenerator and DayPageGenerator ......................................................................
Add unit tests for YearPageGenerator and DayPageGenerator
Add unit tests, TestYearPageGenerator and TestDayPageGenerator. The tests are skipped on wikidata because of T85645.
Bug: T85313 Change-Id: I9b03d8a454485036be1510867340bb0f9e834728 --- M tests/pagegenerators_tests.py 1 file changed, 55 insertions(+), 1 deletion(-)
Approvals: John Vandenberg: Looks good to me, approved jenkins-bot: Verified
diff --git a/tests/pagegenerators_tests.py b/tests/pagegenerators_tests.py index 39f5108..e1c6c0c 100755 --- a/tests/pagegenerators_tests.py +++ b/tests/pagegenerators_tests.py @@ -12,7 +12,7 @@ import sys
import pywikibot -from pywikibot import pagegenerators +from pywikibot import pagegenerators, date
from pywikibot.pagegenerators import ( PagesFromTitlesGenerator, @@ -278,6 +278,60 @@ self.assertPagelistTitles(titles, self.expected_titles[site.case()])
+class TestYearPageGenerator(DefaultSiteTestCase): + + """Test the year page generator.""" + + dry = True + + def test_basic(self): + site = self.get_site() + # Skip if its wikidata because T85645 + if site.family == "wikidata": + raise unittest.SkipTest + start = -20 + end = 2026 + + i = 0 + for page in pagegenerators.YearPageGenerator(start, end, site): + self.assertIsInstance(page, pywikibot.Page) + self.assertEqual(date.formatYear(site.lang, start + i), page.title()) + self.assertNotEqual(page.title(), "0") + i += 1 + if start + i == 0: + i += 1 + self.assertEqual(start + i - 1, end) + + +class TestDayPageGenerator(DefaultSiteTestCase): + + """Test the day page generator.""" + + dry = True + + def test_basic(self): + site = self.get_site() + # Skip if its wikidata because T85645 + if site.family == "wikidata": + raise unittest.SkipTest + fd = date.FormatDate(site) + startMonth = 1 + endMonth = 12 + + gen = pagegenerators.DayPageGenerator(startMonth, endMonth, site) + + for page in pagegenerators.DayPageGenerator(startMonth, endMonth, site): + self.assertIsInstance(page, pywikibot.Page) + self.assertTrue(page.isAutoTitle) + + expected = [] + for month in range(startMonth, endMonth + 1): + for day in range(1, date.getNumberOfDaysInMonth(month) + 1): + expected.append(fd(month, day)) + + self.assertPageTitlesEqual(gen, expected) + + class TestPreloadingGenerator(DefaultSiteTestCase):
"""Test preloading generator on lists."""