def test_bot_may_edit_page(self): """Test botMayEdit when changing content.""" self.assertTrue(self.page.botMayEdit()) self.page.text = '{{nobots}}' self.assertTrue(self.page.botMayEdit()) page = pywikibot.Page(self.site, 'Pywikibot nobots test') self.assertFalse(page.botMayEdit()) page.text = '' self.assertFalse(page.botMayEdit())
def test_bot_may_edit_page_set_text(self): """Test botMayEdit for existing page when assigning text first.""" contents = ( 'Does page may be changed if content is not read first?', 'Does page may be changed if {{bots}} template is found?', 'Does page may be changed if {{nobots}} template is found?') # test the page with assigning text first for content in contents: with self.subTest(content=content): page = pywikibot.Page(self.site, 'Pywikibot nobots test') page.text = content self.assertFalse(page.botMayEdit()) del page
def test_bot_may_edit_general(self): """Test that bot is allowed to edit.""" site = self.get_site() user = site.user() page = pywikibot.Page(site, 'not_existent_page_for_pywikibot_tests') if page.exists(): raise unittest.SkipTest( "Page %s exists! Change page name in tests/page_tests.py" % page.title()) # Ban all compliant bots (shortcut). page.text = '{{nobots}}' page._templates = [pywikibot.Page(site, 'Template:Nobots')] self.assertFalse(page.botMayEdit()) # Ban all compliant bots not in the list, syntax for de wp. page.text = '{{nobots|HagermanBot,Werdnabot}}' self.assertTrue( page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Ban all compliant bots not in the list, syntax for de wp. page.text = '{{nobots|%s, HagermanBot,Werdnabot}}' % user self.assertFalse( page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Ban all bots, syntax for de wp. page.text = '{{nobots|all}}' self.assertFalse( page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Allow all bots (shortcut). page.text = '{{bots}}' page._templates = [pywikibot.Page(site, 'Template:Bots')] self.assertTrue(page.botMayEdit()) # Ban all compliant bots not in the list. page.text = '{{bots|allow=HagermanBot,Werdnabot}}' self.assertFalse( page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Ban all compliant bots in the list. page.text = '{{bots|deny=HagermanBot,Werdnabot}}' self.assertTrue( page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Ban all compliant bots not in the list. page.text = '{{bots|allow=%s, HagermanBot}}' % user self.assertTrue( page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Ban all compliant bots in the list. page.text = '{{bots|deny=%s, HagermanBot}}' % user self.assertFalse( page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Allow all bots. page.text = '{{bots|allow=all}}' self.assertTrue( page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Ban all compliant bots. page.text = '{{bots|allow=none}}' self.assertFalse( page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Ban all compliant bots. page.text = '{{bots|deny=all}}' self.assertFalse( page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Allow all bots. page.text = '{{bots|deny=none}}' self.assertTrue( page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user))
def test_bot_may_edit_general(self): """Test that bot is allowed to edit.""" site = self.get_site() user = site.user() page = pywikibot.Page(site, 'not_existent_page_for_pywikibot_tests') if page.exists(): raise unittest.SkipTest( "Page %s exists! Change page name in tests/page_tests.py" % page.title()) # Ban all compliant bots (shortcut). page.text = '{{nobots}}' page._templates = [pywikibot.Page(site, 'Template:Nobots')] self.assertFalse(page.botMayEdit()) # Ban all compliant bots not in the list, syntax for de wp. page.text = '{{nobots|HagermanBot,Werdnabot}}' self.assertTrue(page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Ban all compliant bots not in the list, syntax for de wp. page.text = '{{nobots|%s, HagermanBot,Werdnabot}}' % user self.assertFalse(page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Ban all bots, syntax for de wp. page.text = '{{nobots|all}}' self.assertFalse(page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Allow all bots (shortcut). page.text = '{{bots}}' page._templates = [pywikibot.Page(site, 'Template:Bots')] self.assertTrue(page.botMayEdit()) # Ban all compliant bots not in the list. page.text = '{{bots|allow=HagermanBot,Werdnabot}}' self.assertFalse(page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Ban all compliant bots in the list. page.text = '{{bots|deny=HagermanBot,Werdnabot}}' self.assertTrue(page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Ban all compliant bots not in the list. page.text = '{{bots|allow=%s, HagermanBot}}' % user self.assertTrue(page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Ban all compliant bots in the list. page.text = '{{bots|deny=%s, HagermanBot}}' % user self.assertFalse(page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Allow all bots. page.text = '{{bots|allow=all}}' self.assertTrue(page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Ban all compliant bots. page.text = '{{bots|allow=none}}' self.assertFalse(page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Ban all compliant bots. page.text = '{{bots|deny=all}}' self.assertFalse(page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user)) # Allow all bots. page.text = '{{bots|deny=none}}' self.assertTrue(page.botMayEdit(), u'%s: %s but user=%s' % (page.text, page.botMayEdit(), user))
def test_bot_may_edit_page_nobots(self): """Test botMayEdit for existing page with nobots template.""" page = pywikibot.Page(self.site, 'Pywikibot nobots test') self.assertFalse(page.botMayEdit()) page.text = '' self.assertFalse(page.botMayEdit())