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 <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits