John Vandenberg has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/181713

Change subject: Add tests for XML export v0.10
......................................................................

Add tests for XML export v0.10

Moved XML export data files into tests/data/xml subdirectory.
Add allowed_failure test for edit summary not being decoded.

Change-Id: I82fccdafcf302d77dd3c6c5ce7713e72a4412e5c
---
R tests/data/xml/article-pear.xml
R tests/data/xml/article-pyrus-utf16.xml
R tests/data/xml/article-pyrus-utf16.xml.bz2
R tests/data/xml/article-pyrus.xml
R tests/data/xml/article-pyrus.xml.bz2
M tests/xmlreader_tests.py
6 files changed, 60 insertions(+), 12 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core 
refs/changes/13/181713/1

diff --git a/tests/data/article-pear.xml b/tests/data/xml/article-pear.xml
similarity index 100%
rename from tests/data/article-pear.xml
rename to tests/data/xml/article-pear.xml
diff --git a/tests/data/article-pyrus-utf16.xml 
b/tests/data/xml/article-pyrus-utf16.xml
similarity index 100%
rename from tests/data/article-pyrus-utf16.xml
rename to tests/data/xml/article-pyrus-utf16.xml
Binary files differ
diff --git a/tests/data/article-pyrus-utf16.xml.bz2 
b/tests/data/xml/article-pyrus-utf16.xml.bz2
similarity index 100%
rename from tests/data/article-pyrus-utf16.xml.bz2
rename to tests/data/xml/article-pyrus-utf16.xml.bz2
Binary files differ
diff --git a/tests/data/article-pyrus.xml b/tests/data/xml/article-pyrus.xml
similarity index 100%
rename from tests/data/article-pyrus.xml
rename to tests/data/xml/article-pyrus.xml
diff --git a/tests/data/article-pyrus.xml.bz2 
b/tests/data/xml/article-pyrus.xml.bz2
similarity index 100%
rename from tests/data/article-pyrus.xml.bz2
rename to tests/data/xml/article-pyrus.xml.bz2
Binary files differ
diff --git a/tests/xmlreader_tests.py b/tests/xmlreader_tests.py
index 8399d0a..3681e19 100644
--- a/tests/xmlreader_tests.py
+++ b/tests/xmlreader_tests.py
@@ -7,11 +7,15 @@
 #
 __version__ = '$Id$'
 
-
 import os.path
+
 from pywikibot import xmlreader
+
 from tests import _data_dir
 from tests.aspects import unittest, TestCase
+from tests.utils import allowed_failure
+
+_xml_data_dir = os.path.join(_data_dir, 'xml')
 
 
 class XmlReaderTestCase(TestCase):
@@ -20,11 +24,19 @@
 
     net = False
 
+    def _get_entries(self, filename, **kwargs):
+        entries = [r for r in
+                   xmlreader.XmlDump(os.path.join(_xml_data_dir, filename),
+                                     **kwargs).parse()]
+        return entries
+
+
+class ExportDotThreeTestCase(XmlReaderTestCase):
+
+    """XML export version 0.3 tests."""
+
     def test_XmlDumpAllRevs(self):
-        pages = [r for r in
-                 xmlreader.XmlDump(os.path.join(_data_dir,
-                                                "article-pear.xml"),
-                                   allrevisions=True).parse()]
+        pages = self._get_entries('article-pear.xml', allrevisions=True)
         self.assertEqual(4, len(pages))
         self.assertEqual(u"Automated conversion", pages[0].comment)
         self.assertEqual(u"Pear", pages[0].title)
@@ -34,9 +46,7 @@
         self.assertEqual(u"Pear", pages[0].title)
 
     def test_XmlDumpFirstRev(self):
-        pages = [r for r in
-                 xmlreader.XmlDump(os.path.join(_data_dir,
-                                                "article-pear.xml")).parse()]
+        pages = self._get_entries("article-pear.xml", allrevisions=False)
         self.assertEqual(1, len(pages))
         self.assertEqual(u"Automated conversion", pages[0].comment)
         self.assertEqual(u"Pear", pages[0].title)
@@ -45,15 +55,16 @@
         self.assertTrue(not pages[0].isredirect)
 
     def test_XmlDumpRedirect(self):
+        pages = self._get_entries('article-pyrus.xml', allrevisions=True)
         pages = [r for r in
-                 xmlreader.XmlDump(os.path.join(_data_dir,
+                 xmlreader.XmlDump(os.path.join(_xml_data_dir,
                                                 "article-pyrus.xml")).parse()]
         self.assertTrue(pages[0].isredirect)
 
     def _compare(self, previous, variant, all_revisions):
-        result = [entry.__dict__ for entry in xmlreader.XmlDump(
-            os.path.join(_data_dir, 'article-pyrus' + variant),
-            all_revisions).parse()]
+        entries = self._get_entries('article-pyrus' + variant,
+                                    allrevisions=all_revisions)
+        result = [entry.__dict__ for entry in entries]
         if previous:
             self.assertEqual(previous, result)
         return result
@@ -72,6 +83,43 @@
         self._compare_variants(False)
 
 
+class ExportDotTenTestCase(XmlReaderTestCase):
+
+    """XML export version 0.10 tests."""
+
+    def test_pair(self):
+        entries = self._get_entries('pair-0.10.xml', allrevisions=True)
+        self.assertEqual(4, len(entries))
+        self.assertTrue(all(entry.title.endswith(u"Çullu, Agdam")
+                            for entry in entries))
+        self.assertTrue(all(entry.username == 'Carlossuarez46'
+                            for entry in entries))
+        self.assertTrue(all(entry.isredirect is False for entry in entries))
+
+        articles = [entry for entry in entries if entry.ns == "0"]
+        talks = [entry for entry in entries if entry.ns == "1"]
+
+        self.assertEqual(2, len(articles))
+        self.assertTrue(all(entry.id == "19252820" for entry in articles))
+        self.assertTrue(all(u'Çullu, Quzanlı' in entry.text
+                            for entry in articles))
+        self.assertEqual(articles[0].text, u'#REDIRECT [[Çullu, Quzanlı]]')
+
+        self.assertEqual(2, len(talks))
+        self.assertTrue(all(entry.id == "19252824" for entry in talks))
+        self.assertEqual(talks[1].text, '{{DisambigProject}}')
+        self.assertEqual(talks[1].comment, 'proj')
+
+    @allowed_failure
+    def test_edit_summary_decoding(self):
+        """Test edit summaries are decoded."""
+        entries = self._get_entries('pair-0.10.xml', allrevisions=True)
+        articles = [entry for entry in entries if entry.ns == "0"]
+
+        self.assertEqual(articles[0].comment,
+                         'moved [[Çullu, Agdam]] to [[Çullu, Quzanlı]]: dab')
+
+
 if __name__ == '__main__':
     try:
         unittest.main()

-- 
To view, visit https://gerrit.wikimedia.org/r/181713
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I82fccdafcf302d77dd3c6c5ce7713e72a4412e5c
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: John Vandenberg <jay...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to