|
|
@ -29,6 +29,8 @@ Test module bot/missingnotice.py |
|
|
|
import unittest |
|
|
|
from unittest import mock # noqa |
|
|
|
|
|
|
|
import pywikibot |
|
|
|
|
|
|
|
import context # noqa |
|
|
|
from bots.missingnotice import MissingNoticeBot # noqa |
|
|
|
|
|
|
@ -38,6 +40,13 @@ class TestMissingNoticeBot(unittest.TestCase): |
|
|
|
Test class MissingNoticeBot |
|
|
|
""" |
|
|
|
|
|
|
|
def setUp(self): |
|
|
|
genFactory = pywikibot.pagegenerators.GeneratorFactory() |
|
|
|
self.MissingNoticeBot = MissingNoticeBot(genFactory) |
|
|
|
self.MissingNoticeBot.categorized_articles = [ "Deutschland", |
|
|
|
"Max_Schlee", |
|
|
|
"Hodeng-Hodenger" ] |
|
|
|
|
|
|
|
@mock.patch( 'sqlalchemy.engine.Engine.execute', |
|
|
|
return_value=( { "page_title": b"a", }, |
|
|
|
{ "page_title": b"b", }, |
|
|
@ -54,6 +63,32 @@ class TestMissingNoticeBot(unittest.TestCase): |
|
|
|
self.assertTrue(execute_mock.called) |
|
|
|
self.assertEqual(result, ["a", "b", "c", "d"] ) |
|
|
|
|
|
|
|
def test_treat_articles( self ): |
|
|
|
""" |
|
|
|
Test method treat_articles() |
|
|
|
""" |
|
|
|
|
|
|
|
# articles with notice |
|
|
|
a = pywikibot.Page(pywikibot.Site(), "Deutschland" ) |
|
|
|
b = pywikibot.Page(pywikibot.Site(), "Max_Schlee" ) |
|
|
|
c = pywikibot.Page(pywikibot.Site(), "Hodeng-Hodenger#Test" ) |
|
|
|
# articles without notice |
|
|
|
x = pywikibot.Page(pywikibot.Site(), "Quodvultdeus" ) |
|
|
|
y = pywikibot.Page(pywikibot.Site(), "Zoo_Bremen" ) |
|
|
|
z = pywikibot.Page(pywikibot.Site(), "Nulka#Test" ) |
|
|
|
|
|
|
|
cases = ( ( ( a, b, c ), list() ), |
|
|
|
( ( x, y, z ), [ "[[Quodvultdeus]]", |
|
|
|
"[[Zoo Bremen]]", |
|
|
|
"[[Nulka#Test]]" ]), |
|
|
|
( ( a, b, y, z ), [ "[[Zoo Bremen]]", |
|
|
|
"[[Nulka#Test]]" ]), ) |
|
|
|
|
|
|
|
for case in cases: |
|
|
|
res = self.MissingNoticeBot.treat_articles( case[0] ) |
|
|
|
|
|
|
|
self.assertEqual( res, case[1] ) |
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
|
|
unittest.main() |
|
|
|