http://www.mediawiki.org/wiki/Special:Code/pywikipedia/11649

Revision: 11649
Author:   valhallasw
Date:     2013-06-13 06:58:30 +0000 (Thu, 13 Jun 2013)
Log Message:
-----------
Update to r11646: tests were also updated

Modified Paths:
--------------
    branches/rewrite/tests/ui_tests.py

Property Changed:
----------------
    branches/rewrite/tests/ui_tests.py

Modified: branches/rewrite/tests/ui_tests.py
===================================================================
--- branches/rewrite/tests/ui_tests.py  2013-06-13 06:56:50 UTC (rev 11648)
+++ branches/rewrite/tests/ui_tests.py  2013-06-13 06:58:30 UTC (rev 11649)
@@ -7,7 +7,7 @@
 #
 # Distributed under the terms of the MIT license.
 #
-__version__ = '$Id: page_tests.py 11625 2013-06-08 19:55:59Z valhallasw $'
+__version__ = '$Id$'
 
 import unittest
 import cStringIO
@@ -19,6 +19,8 @@
     from multiprocessing.managers import BaseManager
     import threading, win32clipboard
     class pywikibotWrapper(object):
+        def init(self):
+            import pywikibot
         def output(self, *args, **kwargs):
             import pywikibot
             return pywikibot.output(*args, **kwargs)
@@ -35,6 +37,10 @@
         def set_config(self, key, value):
             import pywikibot
             setattr(pywikibot.config, key, value)
+        def set_ui(self, key, value):
+            import pywikibot
+            setattr(pywikibot.ui, key, value)
+            
         def cls(self):
             os.system('cls')
 
@@ -80,16 +86,22 @@
                       'caller_line': 0,
                       'newline': "\n"}
 
-    class TestTerminalOutput(unittest.TestCase):
+    class UITestCase(unittest.TestCase):
         def setUp(self):
             patch()
             newstdout.truncate(0)
             newstderr.truncate(0)
             newstdin.truncate(0)
+            
+            pywikibot.config.colorized_output = True
+            pywikibot.config.transliterate = False
+            pywikibot.ui.transliteration_target = None
+            pywikibot.ui.encoding = 'utf-8'
 
         def tearDown(self):
-            unpatch()
-
+            unpatch()    
+                      
+    class TestTerminalOutput(UITestCase):
         def testOutputLevels_logging_debug(self):
             logger.log(DEBUG, 'debug', extra=loggingcontext)
             self.assertEqual(newstdout.getvalue(), "")
@@ -191,16 +203,7 @@
 
             self.assertNotEqual(stderrlines[-1], "\n")
 
-    class TestTerminalInput(unittest.TestCase):
-        def setUp(self):
-            patch()
-            newstdout.truncate(0)
-            newstderr.truncate(0)
-            newstdin.truncate(0)
-
-        def tearDown(self):
-            unpatch()
-
+    class TestTerminalInput(UITestCase):
         def testInput(self):
             newstdin.write("input to read\n")
             newstdin.seek(0)
@@ -263,69 +266,38 @@
             self.assertEqual(returned, "n")
 
     @unittest.skipUnless(os.name == "posix", "requires Unix console")
-    class TestTerminalOutputColorUnix(unittest.TestCase):
-        def setUp(self):
-            patch()
-            newstdout.truncate(0)
-            newstderr.truncate(0)
-            newstdin.truncate(0)
-
-        def tearDown(self):
-            unpatch()
-
+    class TestTerminalOutputColorUnix(UITestCase):
         def testOutputColorizedText(self):
-            pywikibot.config.colorized_output = True
             pywikibot.output(u"normal text \03{lightpurple}light purple 
text\03{default} normal text")
             self.assertEqual(newstdout.getvalue(), "")
             self.assertEqual(newstderr.getvalue(), "normal text 
\x1b[35;1mlight purple text\x1b[0m normal text\n\x1b[0m")
 
-        @unittest.expectedFailure
         def testOutputNoncolorizedText(self):
             pywikibot.config.colorized_output = False
             pywikibot.output(u"normal text \03{lightpurple}light purple 
text\03{default} normal text")
             self.assertEqual(newstdout.getvalue(), "")
-            self.assertEqual(newstderr.getvalue(), "normal text light purple 
text normal text ***")
+            self.assertEqual(newstderr.getvalue(), "normal text light purple 
text normal text ***\n")
 
-        def testOutputNoncolorizedText_incorrect(self):
-            ''' This test documents current (incorrect) behavior '''
-            pywikibot.config.colorized_output = False
-            pywikibot.output(u"normal text \03{lightpurple}light purple 
text\03{default} normal text")
-            self.assertEqual(newstdout.getvalue(), "")
-            self.assertEqual(newstderr.getvalue(), "normal text 
\x03{lightpurple}light purple text\x03{default} normal text\n")
-
         @unittest.expectedFailure
         def testOutputColorCascade(self):
-            pywikibot.config.colorized_output = True
             pywikibot.output(u"normal text \03{lightpurple} light purple 
\03{lightblue} light blue \03{default} light purple \03{default} normal text")
             self.assertEqual(newstdout.getvalue(), "")
             self.assertEqual(newstderr.getvalue(), "normal text \x1b[35;1m 
light purple \x1b[94;1m light blue \x1b[35;1m light purple \x1b[0m normal 
text\n\x1b[0m")
 
         def testOutputColorCascade_incorrect(self):
             ''' This test documents current (incorrect) behavior '''
-            pywikibot.config.colorized_output = True
             pywikibot.output(u"normal text \03{lightpurple} light purple 
\03{lightblue} light blue \03{default} light purple \03{default} normal text")
             self.assertEqual(newstdout.getvalue(), "")
             self.assertEqual(newstderr.getvalue(), "normal text \x1b[35;1m 
light purple \x1b[94;1m light blue \x1b[0m light purple \x1b[0m normal 
text\n\x1b[0m")
 
     @unittest.skipUnless(os.name == "posix", "requires Unix console")
-    class TestTerminalUnicodeUnix(unittest.TestCase):
-        def setUp(self):
-            patch()
-            newstdout.truncate(0)
-            newstderr.truncate(0)
-            newstdin.truncate(0)
-
-        def tearDown(self):
-            unpatch()
-
+    class TestTerminalUnicodeUnix(UITestCase):
         def testOutputUnicodeText(self):
-            pywikibot.config.console_encoding = 'utf-8'
             pywikibot.output(u"Заглавная_страница")
             self.assertEqual(newstdout.getvalue(), "")
             self.assertEqual(newstderr.getvalue(), 
u"Заглавная_страница\n".encode('utf-8'))
 
         def testInputUnicodeText(self):
-            pywikibot.config.console_encoding = 'utf-8'
             newstdin.write(u"Заглавная_страница\n".encode('utf-8'))
             newstdin.seek(0)
 
@@ -338,25 +310,16 @@
             self.assertEqual(returned, u"Заглавная_страница")
 
     @unittest.skipUnless(os.name == "posix", "requires Unix console")
-    class TestTransliterationUnix(unittest.TestCase):
-        def setUp(self):
-            patch()
-            newstdout.truncate(0)
-            newstderr.truncate(0)
-            newstdin.truncate(0)
-
-        def tearDown(self):
-            unpatch()
-
-        def testOutputUnicodeText(self):
-            pywikibot.config.console_encoding = 'latin-1'
-            pywikibot.config.colorized_output = True
+    class TestTransliterationUnix(UITestCase):
+        def testOutputTransliteratedUnicodeText(self):
+            pywikibot.ui.encoding = 'latin-1'
+            pywikibot.config.transliterate = True
             pywikibot.output(u"abcd АБГД αβγδ あいうえお")
             self.assertEqual(newstdout.getvalue(), "")
             self.assertEqual(newstderr.getvalue(), "abcd 
\x1b[33;1mA\x1b[0m\x1b[33;1mB\x1b[0m\x1b[33;1mG\x1b[0m\x1b[33;1mD\x1b[0m 
\x1b[33;1ma\x1b[0m\x1b[33;1mb\x1b[0m\x1b[33;1mg\x1b[0m\x1b[33;1md\x1b[0m 
\x1b[33;1ma\x1b[0m\x1b[33;1mi\x1b[0m\x1b[33;1mu\x1b[0m\x1b[33;1me\x1b[0m\x1b[33;1mo\x1b[0m\n\x1b[0m")
 
     @unittest.skipUnless(os.name == "nt", "requires Windows console")
-    class TestWindowsTerminalUnicode(unittest.TestCase):
+    class TestWindowsTerminalUnicode(UITestCase):
         @classmethod
         def setUpClass(cls):
             import subprocess, inspect, pywinauto
@@ -367,7 +330,7 @@
                    creationflags = subprocess.CREATE_NEW_CONSOLE)
             _manager.connect()
             cls.pywikibot = _manager.pywikibot()
-
+            
             cls._app = pywinauto.application.Application()
             cls._app.connect_(process = cls._process.pid)
 
@@ -405,19 +368,24 @@
            self.setclip(u'')
 
         def setUp(self):
+            super(TestWindowsTerminalUnicode, self).setUp()
+            
+            self.pywikibot.set_config('colorized_output', True)
+            self.pywikibot.set_config('transliterate', False)
+            self.pywikibot.set_config('console_encoding', 'utf-8')
+            self.pywikibot.set_ui('transliteration_target', None)
+            self.pywikibot.set_ui('encoding', 'utf-8')
+            
             self.pywikibot.cls()
             self.setclip(u'')
 
-        def tearDown(self):
-            pass
-
         def testOutputUnicodeText_no_transliterate(self):
-            self.pywikibot.set_config('transliterate', False)
             self.pywikibot.output(u"Заглавная_страница")
-            self.assertEqual(self.getstdouterr(), 
"Заглавная_ст&#\n1088;аница\n")
+            self.assertEqual(self.getstdouterr(), u"Заглавная_страница\n")
 
         def testOutputUnicodeText_transliterate(self):
             self.pywikibot.set_config('transliterate', True)
+            self.pywikibot.set_ui('transliteration_target', 'latin-1')
             self.pywikibot.output(u"Заглавная_страница")
             self.assertEqual(self.getstdouterr(), "Zaglavnaya_stranica\n")
 
@@ -425,11 +393,11 @@
             self.pywikibot.set_config('transliterate', True)
 
             self.pywikibot.request_input(u"Википедию? ")
-            self.assertEqual(self.getstdouterr(), u"Vikipediyu?")
+            self.assertEqual(self.getstdouterr(), u"Википедию?")
             self.sendstdin(u"Заглавная_страница\n")
             returned = self.pywikibot.get_input()
 
-            self.assertEqual(returned, u"?????????_????????")
+            self.assertEqual(returned, u"Заглавная_страница")
 
     try:
         try:


Property changes on: branches/rewrite/tests/ui_tests.py
___________________________________________________________________
Added: svn:keywords
   + Author Date Id Revision


_______________________________________________
Pywikipedia-svn mailing list
Pywikipedia-svn@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-svn

Reply via email to