jenkins-bot has submitted this change and it was merged.
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(-)
Approvals: John Vandenberg: Looks good to me, approved jenkins-bot: Verified
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')
-@unittest.skipUnless(os.name == "posix", "requires Unix console") +@unittest.skipUnless(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')
-@unittest.skipUnless(os.name == "posix", "requires Unix console") +@unittest.skipUnless(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'Заглавная_страница')
-@unittest.skipUnless(os.name == "posix", "requires Unix console") +@unittest.skipUnless(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')
-@unittest.skipUnless(os.name == "nt", "requires Windows console") +@unittest.skipUnless(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__":
pywikibot-commits@lists.wikimedia.org