# -*- coding: utf-8 -*- try: # python 2.x from StringIO import StringIO except ImportError: # python 3.x from io import StringIO try: # python 2.x from mock import patch except ImportError: # python 3.x from unittest.mock import patch # pylint: disable=no-name-in-module, import-error from gitlint.display import Display from gitlint.config import LintConfig from gitlint.tests.base import BaseTestCase class DisplayTests(BaseTestCase): def test_v(self): display = Display(LintConfig()) display.config.verbosity = 2 with patch('gitlint.display.stderr', new=StringIO()) as stderr: # Non exact outputting, should output both v and vv output with patch('gitlint.display.stdout', new=StringIO()) as stdout: display.v(u"tëst") display.vv(u"tëst2") # vvvv should be ignored regardless display.vvv(u"tëst3.1") display.vvv(u"tëst3.2", exact=True) self.assertEqual(u"tëst\ntëst2\n", stdout.getvalue()) # exact outputting, should only output v with patch('gitlint.display.stdout', new=StringIO()) as stdout: display.v(u"tëst", exact=True) display.vv(u"tëst2", exact=True) # vvvv should be ignored regardless display.vvv(u"tëst3.1") display.vvv(u"tëst3.2", exact=True) self.assertEqual(u"tëst2\n", stdout.getvalue()) # standard error should be empty throughtout all of this self.assertEqual('', stderr.getvalue()) def test_e(self): display = Display(LintConfig()) display.config.verbosity = 2 with patch('gitlint.display.stdout', new=StringIO()) as stdout: # Non exact outputting, should output both v and vv output with patch('gitlint.display.stderr', new=StringIO()) as stderr: display.e(u"tëst") display.ee(u"tëst2") # vvvv should be ignored regardless display.eee(u"tëst3.1") display.eee(u"tëst3.2", exact=True) self.assertEqual(u"tëst\ntëst2\n", stderr.getvalue()) # exact outputting, should only output v with patch('gitlint.display.stderr', new=StringIO()) as stderr: display.e(u"tëst", exact=True) display.ee(u"tëst2", exact=True) # vvvv should be ignored regardless display.eee(u"tëst3.1") display.eee(u"tëst3.2", exact=True) self.assertEqual(u"tëst2\n", stderr.getvalue()) # standard output should be empty throughtout all of this self.assertEqual('', stdout.getvalue())