mirror of
https://github.com/python/cpython.git
synced 2025-11-24 12:20:42 +00:00
[3.14] gh-133346: add tests for _colorize.Theme (GH-139687) (#140622)
* gh-133346: add tests for `_colorize.Theme` (GH-139687)
(cherry picked from commit 37827c1752)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
This commit is contained in:
parent
d664102a45
commit
46a3fd2da5
1 changed files with 36 additions and 0 deletions
|
|
@ -1,4 +1,5 @@
|
|||
import contextlib
|
||||
import dataclasses
|
||||
import io
|
||||
import sys
|
||||
import unittest
|
||||
|
|
@ -21,6 +22,41 @@ def supports_virtual_terminal():
|
|||
return contextlib.nullcontext()
|
||||
|
||||
|
||||
class TestTheme(unittest.TestCase):
|
||||
|
||||
def test_attributes(self):
|
||||
# only theme configurations attributes by default
|
||||
for field in dataclasses.fields(_colorize.Theme):
|
||||
with self.subTest(field.name):
|
||||
self.assertIsSubclass(field.type, _colorize.ThemeSection)
|
||||
self.assertIsNotNone(field.default_factory)
|
||||
|
||||
def test_copy_with(self):
|
||||
theme = _colorize.Theme()
|
||||
|
||||
copy = theme.copy_with()
|
||||
self.assertEqual(theme, copy)
|
||||
|
||||
unittest_no_colors = _colorize.Unittest.no_colors()
|
||||
copy = theme.copy_with(unittest=unittest_no_colors)
|
||||
self.assertEqual(copy.argparse, theme.argparse)
|
||||
self.assertEqual(copy.syntax, theme.syntax)
|
||||
self.assertEqual(copy.traceback, theme.traceback)
|
||||
self.assertEqual(copy.unittest, unittest_no_colors)
|
||||
|
||||
def test_no_colors(self):
|
||||
# idempotence test
|
||||
theme_no_colors = _colorize.Theme().no_colors()
|
||||
theme_no_colors_no_colors = theme_no_colors.no_colors()
|
||||
self.assertEqual(theme_no_colors, theme_no_colors_no_colors)
|
||||
|
||||
# attributes check
|
||||
for section in dataclasses.fields(_colorize.Theme):
|
||||
with self.subTest(section.name):
|
||||
section_theme = getattr(theme_no_colors, section.name)
|
||||
self.assertEqual(section_theme, section.type.no_colors())
|
||||
|
||||
|
||||
class TestColorizeFunction(unittest.TestCase):
|
||||
def test_colorized_detection_checks_for_environment_variables(self):
|
||||
def check(env, fallback, expected):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue