Esempio n. 1
0
 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
Esempio n. 3
0
    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))
Esempio n. 4
0
    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())