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