mirror of
https://github.com/django/django.git
synced 2025-07-16 01:35:15 +00:00
Refactored color_style() and no_style() to improve testability. Refs #23663.
This includes the following improvements: - The type of the style object is now called 'Style' rather than 'dummy'. - The new make_style() function allows generating a Style object directly from a config string. Before the only way to get a style object was through the environ and it also required that the terminal supported colors which isn't necessarily the case when testing. - The output of no_style() is now cached with @lru_cache. - The output of no_style() now has the same set of attributes as the other Style objects. Previously it allowed anything to pass through with __getattr__.
This commit is contained in:
parent
bdb4118b1a
commit
eb82fb0a9d
2 changed files with 61 additions and 29 deletions
|
@ -1392,6 +1392,22 @@ class CommandTypes(AdminScriptTestCase):
|
|||
self.assertOutput(out, "Prints the CREATE TABLE, custom SQL and CREATE INDEX SQL statements for the\ngiven model module name(s).")
|
||||
self.assertEqual(out.count('optional arguments'), 1)
|
||||
|
||||
def test_color_style(self):
|
||||
style = color.no_style()
|
||||
self.assertEqual(style.ERROR('Hello, world!'), 'Hello, world!')
|
||||
|
||||
style = color.make_style('nocolor')
|
||||
self.assertEqual(style.ERROR('Hello, world!'), 'Hello, world!')
|
||||
|
||||
style = color.make_style('dark')
|
||||
self.assertIn('Hello, world!', style.ERROR('Hello, world!'))
|
||||
self.assertNotEqual(style.ERROR('Hello, world!'), 'Hello, world!')
|
||||
|
||||
# Default palette has color.
|
||||
style = color.make_style('')
|
||||
self.assertIn('Hello, world!', style.ERROR('Hello, world!'))
|
||||
self.assertNotEqual(style.ERROR('Hello, world!'), 'Hello, world!')
|
||||
|
||||
def test_command_color(self):
|
||||
class Command(BaseCommand):
|
||||
requires_system_checks = False
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue