jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/528474 )

Change subject: [bugfix] Fix the comparison in archivebot
......................................................................

[bugfix] Fix the comparison in archivebot

Fix the comparison in archivebot.

Also removed cause of deprecation for 'test_family'
in TestDiscussionPageObject.

Bug: T228587
Change-Id: Id3f3324db0856603a4539e017fcef44d0bedc977
---
M scripts/archivebot.py
M tests/archivebot_tests.py
2 files changed, 70 insertions(+), 4 deletions(-)

Approvals:
  Xqt: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/scripts/archivebot.py b/scripts/archivebot.py
index c0381f8..86b54a3 100755
--- a/scripts/archivebot.py
+++ b/scripts/archivebot.py
@@ -571,9 +571,14 @@
         """Load and validate archiver template."""
         pywikibot.output('Looking for: {{%s}} in %s' % (self.tpl.title(),
                                                         self.page))
-        for tpl in self.page.raw_extracted_templates:
-            if tpl[0] == self.tpl.title(with_ns=False):
-                for item, value in tpl[1].items():
+        for tpl, params in self.page.raw_extracted_templates:
+            try:  # Check tpl name before comparing; it might be invalid.
+                tpl_page = pywikibot.Page(self.site, tpl, ns=10)
+                tpl_page.title()
+            except pywikibot.Error:
+                continue
+            if tpl_page == self.tpl:
+                for item, value in params.items():
                     self.set_attr(item.strip(), value.strip())
                 break
         else:
diff --git a/tests/archivebot_tests.py b/tests/archivebot_tests.py
index 6896711..c8b5bc3 100644
--- a/tests/archivebot_tests.py
+++ b/tests/archivebot_tests.py
@@ -240,7 +240,7 @@
     """Test DiscussionPage object."""

     cached = True
-    family = 'test'
+    family = 'wikipedia'
     code = 'test'

     def testTwoThreadsWithCommentedOutThread(self):
@@ -301,6 +301,67 @@
         self.assertEqual([x.title for x in page.threads], ['A', 'B'])


+class TestPageArchiverObject(TestCase):
+
+    """Test PageArchiver object."""
+
+    cached = True
+    family = 'wikipedia'
+    code = 'test'
+
+    def testLoadConfigInTemplateNamespace(self):
+        """Test loading of config with TEMPLATE_PAGE in Template ns.
+
+        Talk:For-pywikibot-archivebot-01 must have:
+
+         {{Pywikibot_archivebot
+         |archive = Talk:Main_Page/archive
+         |algo = old(30d)
+         }}
+        """
+        site = self.get_site()
+        page = pywikibot.Page(site, 'Talk:For-pywikibot-archivebot-01')
+
+        # TEMPLATE_PAGE assumed in ns=10 if ns is not explicit.
+        tmpl_with_ns = pywikibot.Page(site, 'Template:Pywikibot_archivebot')
+        tmpl_without_ns = pywikibot.Page(site, 'Pywikibot_archivebot', ns=10)
+
+        try:
+            archivebot.PageArchiver(page, tmpl_with_ns, '')
+        except pywikibot.Error as e:
+            self.fail('PageArchiver() raised {}!'.format(e))
+
+        try:
+            archivebot.PageArchiver(page, tmpl_without_ns, '')
+        except pywikibot.Error as e:
+            self.fail('PageArchiver() raised {}!'.format(e))
+
+    def testLoadConfigInOtherNamespace(self):
+        """Test loading of config with TEMPLATE_PAGE not in Template ns.
+
+        Talk:For-pywikibot-archivebot must have:
+
+         {{User:MiszaBot/config
+         |archive = Talk:Main_Page/archive
+         |algo = old(30d)
+         }}
+        """
+        site = self.get_site()
+        page = pywikibot.Page(site, 'Talk:For-pywikibot-archivebot')
+
+        tmpl_with_ns = pywikibot.Page(site, 'User:MiszaBot/config', ns=10)
+        tmpl_without_ns = pywikibot.Page(site, 'MiszaBot/config', ns=10)
+
+        # TEMPLATE_PAGE assumed in ns=10 if ns is not explicit.
+        try:
+            archivebot.PageArchiver(page, tmpl_with_ns, '')
+        except pywikibot.Error as e:
+            self.fail('PageArchiver() raised {}!'.format(e))
+
+        with self.assertRaises(archivebot.MissingConfigError):
+            archivebot.PageArchiver(page, tmpl_without_ns, '')
+
+
 if __name__ == '__main__':  # pragma: no cover
     try:
         unittest.main()

--
To view, visit https://gerrit.wikimedia.org/r/528474
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.wikimedia.org/r/settings

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Id3f3324db0856603a4539e017fcef44d0bedc977
Gerrit-Change-Number: 528474
Gerrit-PatchSet: 9
Gerrit-Owner: Mpaa <[email protected]>
Gerrit-Reviewer: D3r1ck01 <[email protected]>
Gerrit-Reviewer: Dalba <[email protected]>
Gerrit-Reviewer: Dvorapa <[email protected]>
Gerrit-Reviewer: John Vandenberg <[email protected]>
Gerrit-Reviewer: Mpaa <[email protected]>
Gerrit-Reviewer: Xqt <[email protected]>
Gerrit-Reviewer: Zhuyifei1999 <[email protected]>
Gerrit-Reviewer: jenkins-bot (75)
Gerrit-CC: MarcoAurelio <[email protected]>
_______________________________________________
Pywikibot-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikibot-commits

Reply via email to