XZise has uploaded a new change for review.
https://gerrit.wikimedia.org/r/186736
Change subject: [IMPROV] ui tests: Clean up tests
......................................................................
[IMPROV] ui tests: Clean up tests
With 47c7cb5f07d59e0014db96e4a7ba40cd42d5d51d the ui_tests have been
deindented. Originaly I planned to also do some other minor changes as
git blame has been broken already be deindenting all of it. But because
of a problem with the diff it didn't came so this are now the remaining
changes. Mainly changing double quotes in single quotes, removing
triple quotes (which weren't docstring) and remove the line length of
one line.
Change-Id: I1a678bc445a16a9180bed0049c3bc52b792f836b
---
M tests/ui_tests.py
1 file changed, 108 insertions(+), 105 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core
refs/changes/36/186736/1
diff --git a/tests/ui_tests.py b/tests/ui_tests.py
index 9229769..08ddcb8 100644
--- a/tests/ui_tests.py
+++ b/tests/ui_tests.py
@@ -156,11 +156,12 @@
ui._print = org_print
ui._raw_input = org_input
+
logger = logging.getLogger('pywiki')
-loggingcontext = {'caller_name': "ui_tests",
- 'caller_file': "ui_tests",
+loggingcontext = {'caller_name': 'ui_tests',
+ 'caller_file': 'ui_tests',
'caller_line': 0,
- 'newline': "\n"}
+ 'newline': '\n'}
class UITestCase(unittest.TestCase):
@@ -193,173 +194,173 @@
def testOutputLevels_logging_debug(self):
logger.log(DEBUG, 'debug', extra=loggingcontext)
- self.assertEqual(newstdout.getvalue(), "")
- self.assertEqual(newstderr.getvalue(), "")
+ self.assertEqual(newstdout.getvalue(), '')
+ self.assertEqual(newstderr.getvalue(), '')
def testOutputLevels_logging_verbose(self):
logger.log(VERBOSE, 'verbose', extra=loggingcontext)
- self.assertEqual(newstdout.getvalue(), "")
- self.assertEqual(newstderr.getvalue(), "")
+ self.assertEqual(newstdout.getvalue(), '')
+ self.assertEqual(newstderr.getvalue(), '')
def testOutputLevels_logging_info(self):
logger.log(INFO, 'info', extra=loggingcontext)
- self.assertEqual(newstdout.getvalue(), "")
- self.assertEqual(newstderr.getvalue(), "info\n")
+ self.assertEqual(newstdout.getvalue(), '')
+ self.assertEqual(newstderr.getvalue(), 'info\n')
def testOutputLevels_logging_stdout(self):
logger.log(STDOUT, 'stdout', extra=loggingcontext)
- self.assertEqual(newstdout.getvalue(), "stdout\n")
- self.assertEqual(newstderr.getvalue(), "")
+ self.assertEqual(newstdout.getvalue(), 'stdout\n')
+ self.assertEqual(newstderr.getvalue(), '')
def testOutputLevels_logging_input(self):
logger.log(INPUT, 'input', extra=loggingcontext)
- self.assertEqual(newstdout.getvalue(), "")
- self.assertEqual(newstderr.getvalue(), "input\n")
+ self.assertEqual(newstdout.getvalue(), '')
+ self.assertEqual(newstderr.getvalue(), 'input\n')
def testOutputLevels_logging_WARNING(self):
logger.log(WARNING, 'WARNING', extra=loggingcontext)
- self.assertEqual(newstdout.getvalue(), "")
- self.assertEqual(newstderr.getvalue(), "WARNING: WARNING\n")
+ self.assertEqual(newstdout.getvalue(), '')
+ self.assertEqual(newstderr.getvalue(), 'WARNING: WARNING\n')
def testOutputLevels_logging_ERROR(self):
logger.log(ERROR, 'ERROR', extra=loggingcontext)
- self.assertEqual(newstdout.getvalue(), "")
- self.assertEqual(newstderr.getvalue(), "ERROR: ERROR\n")
+ self.assertEqual(newstdout.getvalue(), '')
+ self.assertEqual(newstderr.getvalue(), 'ERROR: ERROR\n')
def testOutputLevels_logging_CRITICAL(self):
logger.log(CRITICAL, 'CRITICAL', extra=loggingcontext)
- self.assertEqual(newstdout.getvalue(), "")
- self.assertEqual(newstderr.getvalue(), "CRITICAL: CRITICAL\n")
+ self.assertEqual(newstdout.getvalue(), '')
+ self.assertEqual(newstderr.getvalue(), 'CRITICAL: CRITICAL\n')
def test_output(self):
- pywikibot.output("output", toStdout=False)
- self.assertEqual(newstdout.getvalue(), "")
- self.assertEqual(newstderr.getvalue(), "output\n")
+ pywikibot.output('output', toStdout=False)
+ self.assertEqual(newstdout.getvalue(), '')
+ self.assertEqual(newstderr.getvalue(), 'output\n')
def test_output_stdout(self):
- pywikibot.output("output", toStdout=True)
- self.assertEqual(newstdout.getvalue(), "output\n")
- self.assertEqual(newstderr.getvalue(), "")
+ pywikibot.output('output', toStdout=True)
+ self.assertEqual(newstdout.getvalue(), 'output\n')
+ self.assertEqual(newstderr.getvalue(), '')
def test_warning(self):
- pywikibot.warning("warning")
- self.assertEqual(newstdout.getvalue(), "")
- self.assertEqual(newstderr.getvalue(), "WARNING: warning\n")
+ pywikibot.warning('warning')
+ self.assertEqual(newstdout.getvalue(), '')
+ self.assertEqual(newstderr.getvalue(), 'WARNING: warning\n')
def test_error(self):
- pywikibot.error("error")
- self.assertEqual(newstdout.getvalue(), "")
- self.assertEqual(newstderr.getvalue(), "ERROR: error\n")
+ pywikibot.error('error')
+ self.assertEqual(newstdout.getvalue(), '')
+ self.assertEqual(newstderr.getvalue(), 'ERROR: error\n')
def test_log(self):
- pywikibot.log("log")
- self.assertEqual(newstdout.getvalue(), "")
- self.assertEqual(newstderr.getvalue(), "")
+ pywikibot.log('log')
+ self.assertEqual(newstdout.getvalue(), '')
+ self.assertEqual(newstderr.getvalue(), '')
def test_critical(self):
- pywikibot.critical("critical")
- self.assertEqual(newstdout.getvalue(), "")
- self.assertEqual(newstderr.getvalue(), "CRITICAL: critical\n")
+ pywikibot.critical('critical')
+ self.assertEqual(newstdout.getvalue(), '')
+ self.assertEqual(newstderr.getvalue(), 'CRITICAL: critical\n')
def test_debug(self):
- pywikibot.debug("debug", "test")
- self.assertEqual(newstdout.getvalue(), "")
- self.assertEqual(newstderr.getvalue(), "")
+ pywikibot.debug('debug', 'test')
+ self.assertEqual(newstdout.getvalue(), '')
+ self.assertEqual(newstderr.getvalue(), '')
def test_exception(self):
class TestException(Exception):
- """Test Exception."""
+ """Test exception."""
try:
- raise TestException("Testing Exception")
+ raise TestException('Testing Exception')
except TestException:
- pywikibot.exception("exception")
- self.assertEqual(newstdout.getvalue(), "")
- self.assertEqual(newstderr.getvalue(), "ERROR: TestException: Testing
Exception\n")
+ pywikibot.exception('exception')
+ self.assertEqual(newstdout.getvalue(), '')
+ self.assertEqual(newstderr.getvalue(), 'ERROR: TestException: Testing
Exception\n')
def test_exception_tb(self):
class TestException(Exception):
- """Test Exception."""
+ """Test exception."""
try:
- raise TestException("Testing Exception")
+ raise TestException('Testing Exception')
except TestException:
- pywikibot.exception("exception", tb=True)
- self.assertEqual(newstdout.getvalue(), "")
- stderrlines = newstderr.getvalue().split("\n")
- self.assertEqual(stderrlines[0], "ERROR: TestException: Testing
Exception")
- self.assertEqual(stderrlines[1], "Traceback (most recent call last):")
- self.assertEqual(stderrlines[3], """ raise TestException("Testing
Exception")""")
+ pywikibot.exception('exception', tb=True)
+ self.assertEqual(newstdout.getvalue(), '')
+ stderrlines = newstderr.getvalue().split('\n')
+ self.assertEqual(stderrlines[0], 'ERROR: TestException: Testing
Exception')
+ self.assertEqual(stderrlines[1], 'Traceback (most recent call last):')
+ self.assertEqual(stderrlines[3], " raise TestException('Testing
Exception')")
self.assertTrue(stderrlines[4].endswith(': Testing Exception'))
- self.assertNotEqual(stderrlines[-1], "\n")
+ self.assertNotEqual(stderrlines[-1], '\n')
class TestTerminalInput(UITestCase):
"""Terminal input tests."""
- input_choice_output = "question ([A]nswer 1, a[n]swer 2, an[s]wer 3) "
+ input_choice_output = 'question ([A]nswer 1, a[n]swer 2, an[s]wer 3) '
def testInput(self):
- newstdin.write("input to read\n")
+ newstdin.write('input to read\n')
newstdin.seek(0)
- returned = pywikibot.input("question")
+ returned = pywikibot.input('question')
- self.assertEqual(newstdout.getvalue(), "")
- self.assertEqual(newstderr.getvalue(), "question ")
+ self.assertEqual(newstdout.getvalue(), '')
+ self.assertEqual(newstderr.getvalue(), 'question ')
self.assertIsInstance(returned, unicode)
- self.assertEqual(returned, u"input to read")
+ self.assertEqual(returned, u'input to read')
def _call_input_choice(self):
rv = pywikibot.input_choice(
- "question",
+ 'question',
(('answer 1', u'A'),
('answer 2', u'N'),
('answer 3', u'S')),
u'A',
automatic_quit=False)
- self.assertEqual(newstdout.getvalue(), "")
+ self.assertEqual(newstdout.getvalue(), '')
self.assertIsInstance(rv, unicode)
return rv
def testInputChoiceDefault(self):
- newstdin.write("\n")
+ newstdin.write('\n')
newstdin.seek(0)
returned = self._call_input_choice()
- self.assertEqual(returned, "a")
+ self.assertEqual(returned, 'a')
def testInputChoiceCapital(self):
- newstdin.write("N\n")
+ newstdin.write('N\n')
newstdin.seek(0)
returned = self._call_input_choice()
self.assertEqual(newstderr.getvalue(), self.input_choice_output)
- self.assertEqual(returned, "n")
+ self.assertEqual(returned, 'n')
def testInputChoiceNonCapital(self):
- newstdin.write("n\n")
+ newstdin.write('n\n')
newstdin.seek(0)
returned = self._call_input_choice()
self.assertEqual(newstderr.getvalue(), self.input_choice_output)
- self.assertEqual(returned, "n")
+ self.assertEqual(returned, 'n')
def testInputChoiceIncorrectAnswer(self):
- newstdin.write("X\nN\n")
+ newstdin.write('X\nN\n')
newstdin.seek(0)
returned = self._call_input_choice()
@@ -367,10 +368,10 @@
self.assertEqual(newstderr.getvalue(),
self.input_choice_output * 2)
- self.assertEqual(returned, "n")
+ self.assertEqual(returned, 'n')
[email protected](os.name == "posix", "requires Unix console")
[email protected](os.name == 'posix', 'requires Unix console')
class TestTerminalOutputColorUnix(UITestCase):
"""Terminal output color tests."""
@@ -379,7 +380,7 @@
def testOutputColorizedText(self):
pywikibot.output(self.str1)
- self.assertEqual(newstdout.getvalue(), "")
+ self.assertEqual(newstdout.getvalue(), '')
self.assertEqual(
newstderr.getvalue(),
'text \x1b[95mlight purple text\x1b[0m text\n\x1b[0m')
@@ -387,7 +388,7 @@
def testOutputNoncolorizedText(self):
pywikibot.config.colorized_output = False
pywikibot.output(self.str1)
- self.assertEqual(newstdout.getvalue(), "")
+ self.assertEqual(newstdout.getvalue(), '')
self.assertEqual(
newstderr.getvalue(),
'text light purple text text ***\n')
@@ -399,7 +400,7 @@
@unittest.expectedFailure
def testOutputColorCascade(self):
pywikibot.output(self.str2)
- self.assertEqual(newstdout.getvalue(), "")
+ self.assertEqual(newstdout.getvalue(), '')
self.assertEqual(
newstderr.getvalue(),
'normal text \x1b[35;1m light purple ' +
@@ -409,7 +410,7 @@
def testOutputColorCascade_incorrect(self):
""" Test incorrect behavior of testOutputColorCascade. """
pywikibot.output(self.str2)
- self.assertEqual(newstdout.getvalue(), "")
+ self.assertEqual(newstdout.getvalue(), '')
self.assertEqual(
newstderr.getvalue(),
'normal text \x1b[95m light purple ' +
@@ -417,14 +418,14 @@
'\x1b[0m normal text\n\x1b[0m')
[email protected](os.name == "posix", "requires Unix console")
[email protected](os.name == 'posix', 'requires Unix console')
class TestTerminalUnicodeUnix(UITestCase):
"""Terminal output tests for unix."""
def testOutputUnicodeText(self):
- pywikibot.output(u"Заглавная_страница")
- self.assertEqual(newstdout.getvalue(), "")
+ pywikibot.output(u'Заглавная_страница')
+ self.assertEqual(newstdout.getvalue(), '')
self.assertEqual(
newstderr.getvalue(),
self._encode(u'Заглавная_страница\n', 'utf-8'))
@@ -433,18 +434,18 @@
newstdin.write(self._encode(u'Заглавная_страница\n', 'utf-8'))
newstdin.seek(0)
- returned = pywikibot.input(u"Википедию? ")
+ returned = pywikibot.input(u'Википедию? ')
- self.assertEqual(newstdout.getvalue(), "")
+ self.assertEqual(newstdout.getvalue(), '')
self.assertEqual(
newstderr.getvalue(),
self._encode(u'Википедию? ', 'utf-8'))
self.assertIsInstance(returned, unicode)
- self.assertEqual(returned, u"Заглавная_страница")
+ self.assertEqual(returned, u'Заглавная_страница')
[email protected](os.name == "posix", "requires Unix console")
[email protected](os.name == 'posix', 'requires Unix console')
class TestTransliterationUnix(UITestCase):
"""Terminal output transliteration tests."""
@@ -452,8 +453,8 @@
def testOutputTransliteratedUnicodeText(self):
pywikibot.ui.encoding = 'latin-1'
pywikibot.config.transliterate = True
- pywikibot.output(u"abcd АБГД αβγδ あいうえお")
- self.assertEqual(newstdout.getvalue(), "")
+ pywikibot.output(u'abcd АБГД αβγδ あいうえお')
+ self.assertEqual(newstdout.getvalue(), '')
self.assertEqual(
newstderr.getvalue(),
'abcd \x1b[93mA\x1b[0m\x1b[93mB\x1b[0m\x1b[93mG\x1b[0m'
@@ -462,7 +463,7 @@
'\x1b[93mu\x1b[0m\x1b[93me\x1b[0m\x1b[93mo\x1b[0m\n\x1b[0m')
[email protected](os.name == "nt", "requires Windows console")
[email protected](os.name == 'nt', 'requires Windows console')
class WindowsTerminalTestCase(UITestCase):
"""MS Windows terminal tests."""
@@ -486,7 +487,7 @@
cls._app.connect_(process=cls._process.pid)
# set truetype font (Lucida Console, hopefully)
- cls._app.window_().TypeKeys("% {UP}{ENTER}^L{HOME}L{ENTER}",
with_spaces=True)
+ cls._app.window_().TypeKeys('% {UP}{ENTER}^L{HOME}L{ENTER}',
with_spaces=True)
@classmethod
def tearDownProcess(cls):
@@ -526,12 +527,12 @@
win32clipboard.OpenClipboard()
data = win32clipboard.GetClipboardData(win32clipboard.CF_UNICODETEXT)
win32clipboard.CloseClipboard()
- data = data.split(u"\x00")[0]
- data = data.replace(u"\r\n", u"\n")
+ data = data.split(u'\x00')[0]
+ data = data.replace(u'\r\n', u'\n')
return data
def sendstdin(self, text):
- self.setclip(text.replace(u"\n", u"\r\n"))
+ self.setclip(text.replace(u'\n', u'\r\n'))
self._app.window_().SetFocus()
self.waitForWindow()
self._app.window_().TypeKeys('%
{UP}{UP}{UP}{RIGHT}{DOWN}{DOWN}{ENTER}', with_spaces=True)
@@ -546,7 +547,7 @@
super(TestWindowsTerminalUnicode, cls).setUpClass()
import inspect
fn = inspect.getfile(inspect.currentframe())
- cls.setUpProcess(["python", "pwb.py", fn,
"--run-as-slave-interpreter"])
+ cls.setUpProcess(['python', 'pwb.py', fn,
'--run-as-slave-interpreter'])
_manager.connect()
cls.pywikibot = _manager.pywikibot()
@@ -568,24 +569,24 @@
self.pywikibot.cls()
def testOutputUnicodeText_no_transliterate(self):
- self.pywikibot.output(u"Заглавная_страница")
- self.assertEqual(self.getstdouterr(), u"Заглавная_страница\n")
+ self.pywikibot.output(u'Заглавная_страница')
+ 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")
+ self.pywikibot.output(u'Заглавная_страница')
+ self.assertEqual(self.getstdouterr(), 'Zaglavnaya_stranica\n')
def testInputUnicodeText(self):
self.pywikibot.set_config('transliterate', True)
- self.pywikibot.request_input(u"Википедию? ")
- self.assertEqual(self.getstdouterr(), u"Википедию?")
- self.sendstdin(u"Заглавная_страница\n")
+ self.pywikibot.request_input(u'Википедию? ')
+ self.assertEqual(self.getstdouterr(), u'Википедию?')
+ self.sendstdin(u'Заглавная_страница\n')
returned = self.pywikibot.get_input()
- self.assertEqual(returned, u"Заглавная_страница")
+ self.assertEqual(returned, u'Заглавная_страница')
class TestWindowsTerminalUnicodeArguments(WindowsTerminalTestCase):
@@ -595,7 +596,7 @@
@classmethod
def setUpClass(cls):
super(TestWindowsTerminalUnicodeArguments, cls).setUpClass()
- cls.setUpProcess(["cmd", "/k", "echo off"])
+ cls.setUpProcess(['cmd', '/k', 'echo off'])
@classmethod
def tearDownClass(cls):
@@ -603,15 +604,17 @@
pass
def testOutputUnicodeText_no_transliterate(self):
- self.sendstdin(u"""python -c "import os, pywikibot; os.system('cls');
pywikibot.output(u'\\n'.join(pywikibot.handleArgs()))" Alpha Bετα Гамма
دلتا\n""")
- while(True):
- lines = self.getstdouterr().split("\n")
- if len(lines) >= 4 and lines[0] == "Alpha":
- break
+ self.sendstdin(
+ u"python -c \"import os, pywikibot; os.system('cls'); "
+ u"pywikibot.output(u'\\n'.join(pywikibot.handleArgs()))\" "
+ u"Alpha Bετα Гамма دلتا\n")
+ lines = []
+ while len(lines) < 4 or lines[0] != 'Alpha':
+ lines = self.getstdouterr().split('\n')
time.sleep(1)
# empty line is the new command line
- self.assertEqual(lines, [u"Alpha", u"Bετα", u"Гамма", u"دلتا", u""])
+ self.assertEqual(lines, [u'Alpha', u'Bετα', u'Гамма', u'دلتا', u''])
if __name__ == "__main__":
--
To view, visit https://gerrit.wikimedia.org/r/186736
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I1a678bc445a16a9180bed0049c3bc52b792f836b
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: XZise <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits