Vehicle-Anti-Theft-Face-Rec.../venv/Lib/site-packages/qtconsole/tests/test_frontend_widget.py

96 lines
3.1 KiB
Python

import unittest
import pytest
from qtpy import QtWidgets
from qtconsole.frontend_widget import FrontendWidget
from qtpy.QtTest import QTest
from . import no_display
@pytest.mark.skipif(no_display, reason="Doesn't work without a display")
class TestFrontendWidget(unittest.TestCase):
@classmethod
def setUpClass(cls):
""" Create the application for the test case.
"""
cls._app = QtWidgets.QApplication.instance()
if cls._app is None:
cls._app = QtWidgets.QApplication([])
cls._app.setQuitOnLastWindowClosed(False)
@classmethod
def tearDownClass(cls):
""" Exit the application.
"""
QtWidgets.QApplication.quit()
def test_transform_classic_prompt(self):
""" Test detecting classic prompts.
"""
w = FrontendWidget(kind='rich')
t = w._highlighter.transform_classic_prompt
# Base case
self.assertEqual(t('>>> test'), 'test')
self.assertEqual(t(' >>> test'), 'test')
self.assertEqual(t('\t >>> test'), 'test')
# No prompt
self.assertEqual(t(''), '')
self.assertEqual(t('test'), 'test')
# Continuation prompt
self.assertEqual(t('... test'), 'test')
self.assertEqual(t(' ... test'), 'test')
self.assertEqual(t(' ... test'), 'test')
self.assertEqual(t('\t ... test'), 'test')
# Prompts that don't match the 'traditional' prompt
self.assertEqual(t('>>>test'), '>>>test')
self.assertEqual(t('>> test'), '>> test')
self.assertEqual(t('...test'), '...test')
self.assertEqual(t('.. test'), '.. test')
# Prefix indicating input from other clients
self.assertEqual(t('[remote] >>> test'), 'test')
# Random other prefix
self.assertEqual(t('[foo] >>> test'), '[foo] >>> test')
def test_transform_ipy_prompt(self):
""" Test detecting IPython prompts.
"""
w = FrontendWidget(kind='rich')
t = w._highlighter.transform_ipy_prompt
# In prompt
self.assertEqual(t('In [1]: test'), 'test')
self.assertEqual(t('In [2]: test'), 'test')
self.assertEqual(t('In [10]: test'), 'test')
self.assertEqual(t(' In [1]: test'), 'test')
self.assertEqual(t('\t In [1]: test'), 'test')
# No prompt
self.assertEqual(t(''), '')
self.assertEqual(t('test'), 'test')
# Continuation prompt
self.assertEqual(t(' ...: test'), 'test')
self.assertEqual(t(' ...: test'), 'test')
self.assertEqual(t(' ...: test'), 'test')
self.assertEqual(t('\t ...: test'), 'test')
# Prompts that don't match the in-prompt
self.assertEqual(t('In [1]:test'), 'In [1]:test')
self.assertEqual(t('[1]: test'), '[1]: test')
self.assertEqual(t('In: test'), 'In: test')
self.assertEqual(t(': test'), ': test')
self.assertEqual(t('...: test'), '...: test')
# Prefix indicating input from other clients
self.assertEqual(t('[remote] In [1]: test'), 'test')
# Random other prefix
self.assertEqual(t('[foo] In [1]: test'), '[foo] In [1]: test')