def test_first_edit(self):
        expect = (
            u'The Addams Family (pinball)',
            u'Talk:Nowy Sącz',
            u'Template:Template',
        )
        gen = PagesFromTitlesGenerator(self.titles, self.site)
        gen = pagegenerators.EdittimeFilterPageGenerator(
            gen, first_edit_end=datetime.datetime(2006, 1, 1))
        self.assertPagelistTitles(gen, titles=expect, site=self.site)

        gen = PagesFromTitlesGenerator(self.titles, self.site)
        gen = pagegenerators.EdittimeFilterPageGenerator(
            gen, first_edit_start=datetime.datetime(2006, 1, 1))
        opposite_pages = list(gen)
        self.assertTrue(
            all(isinstance(p, pywikibot.Page) for p in opposite_pages))
        self.assertTrue(all(p.title not in expect for p in opposite_pages))
    def test_last_edit(self):
        two_days_ago = datetime.datetime.now() - datetime.timedelta(days=2)
        nine_days_ago = datetime.datetime.now() - datetime.timedelta(days=9)

        gen = PagesFromTitlesGenerator(['Wikipedia:Sandbox'], self.site)
        gen = pagegenerators.EdittimeFilterPageGenerator(
            gen, last_edit_start=two_days_ago)
        self.assertEqual(len(list(gen)), 1)

        gen = PagesFromTitlesGenerator(['Wikipedia:Sandbox'], self.site)
        gen = pagegenerators.EdittimeFilterPageGenerator(
            gen, last_edit_end=two_days_ago)
        self.assertEqual(len(list(gen)), 0)

        gen = PagesFromTitlesGenerator(['Template:Sidebox'], self.site)
        gen = pagegenerators.EdittimeFilterPageGenerator(
            gen, last_edit_end=nine_days_ago)
        self.assertEqual(len(list(gen)), 1)

        gen = PagesFromTitlesGenerator(['Template:Sidebox'], self.site)
        gen = pagegenerators.EdittimeFilterPageGenerator(
            gen, last_edit_start=nine_days_ago)
        self.assertEqual(len(list(gen)), 0)
mail['Subject'] = Header(mailSubj.encode('utf-8'), 'utf-8')

adminReqPagesPrevYear = pagegenerators.PrefixingPageGenerator(
    'Заявки към администраторите/' + str(currentDateTime.year - 1),
    namespace='Уикипедия',
    includeredirects=False)

adminReqPagesCurrYear = pagegenerators.PrefixingPageGenerator(
    'Заявки към администраторите/' + str(currentDateTime.year),
    namespace='Уикипедия',
    includeredirects=False)

adminReqPages = pagegenerators.CombinedPageGenerator(
    [adminReqPagesPrevYear, adminReqPagesCurrYear])

adminReqPagesRecent = pagegenerators.EdittimeFilterPageGenerator(
    adminReqPages, last_edit_start=lastDateTime)

revisionCount = 0
for reqPage in adminReqPagesRecent:
    mailBody += '##############################################################################\n\n'
    mailBody += 'https://bg.wikipedia.org/wiki/' + reqPage.title().replace(
        ' ', '_') + '\n\n'
    mailBody += '##############################################################################\n\n'
    for revision in reqPage.revisions(reverse=True,
                                      starttime=lastDateTime,
                                      content=True):
        revisionCount += 1
        mailBody += 'Дата и час: %s' % revision.timestamp + '\n'
        mailBody += 'Потребител: %s' % revision.user + '\n'
        mailBody += 'Резюме: %s' % revision.comment + '\n\n'
        if revision._parent_id: