test_pycolorize.py
70 lines
| 1.7 KiB
| text/x-python
|
PythonLexer
|
r21801 | # coding: utf-8 | ||
|
r4794 | """Test suite for our color utilities. | ||
Authors | ||||
------- | ||||
* Min RK | ||||
""" | ||||
#----------------------------------------------------------------------------- | ||||
# Copyright (C) 2011 The IPython Development Team | ||||
# | ||||
# Distributed under the terms of the BSD License. The full license is in | ||||
# the file COPYING.txt, distributed as part of this software. | ||||
#----------------------------------------------------------------------------- | ||||
#----------------------------------------------------------------------------- | ||||
# Imports | ||||
#----------------------------------------------------------------------------- | ||||
# our own | ||||
|
r28326 | import sys | ||
|
r4794 | from IPython.utils.PyColorize import Parser | ||
|
r21801 | import io | ||
|
r26183 | import pytest | ||
@pytest.fixture(scope="module", params=("Linux", "NoColor", "LightBG", "Neutral")) | ||||
def style(request): | ||||
yield request.param | ||||
|
r4794 | |||
#----------------------------------------------------------------------------- | ||||
# Test functions | ||||
#----------------------------------------------------------------------------- | ||||
|
r26183 | sample = """ | ||
|
r21801 | def function(arg, *args, kwarg=True, **kwargs): | ||
''' | ||||
this is docs | ||||
''' | ||||
pass is True | ||||
False == None | ||||
|
r4794 | |||
|
r27494 | with io.open(ru'unicode', encoding='utf-8'): | ||
|
r28326 | raise ValueError("escape \r sequence") | ||
|
r21801 | |||
print("wěird ünicoðe") | ||||
class Bar(Super): | ||||
def __init__(self): | ||||
super(Bar, self).__init__(1**2, 3^4, 5 or 6) | ||||
""" | ||||
|
r26183 | def test_parse_sample(style): | ||
"""and test writing to a buffer""" | ||||
buf = io.StringIO() | ||||
p = Parser(style=style) | ||||
p.format(sample, buf) | ||||
buf.seek(0) | ||||
f1 = buf.read() | ||||
|
r21801 | |||
|
r26925 | assert "ERROR" not in f1 | ||
|
r21801 | |||
|
r26183 | def test_parse_error(style): | ||
p = Parser(style=style) | ||||
|
r28326 | f1 = p.format(r"\ " if sys.version_info >= (3, 12) else ")", "str") | ||
|
r26183 | if style != "NoColor": | ||
|
r26925 | assert "ERROR" in f1 | ||