/tests/regressiontests/utils/termcolors.py

https://code.google.com/p/mango-py/ · Python · 148 lines · 125 code · 23 blank · 0 comment · 0 complexity · 62f95de3a047bf001e63d980fa45789e MD5 · raw file

  1. from django.utils import unittest
  2. from django.utils.termcolors import parse_color_setting, PALETTES, DEFAULT_PALETTE, LIGHT_PALETTE, DARK_PALETTE, NOCOLOR_PALETTE
  3. class TermColorTests(unittest.TestCase):
  4. def test_empty_string(self):
  5. self.assertEqual(parse_color_setting(''), PALETTES[DEFAULT_PALETTE])
  6. def test_simple_palette(self):
  7. self.assertEqual(parse_color_setting('light'), PALETTES[LIGHT_PALETTE])
  8. self.assertEqual(parse_color_setting('dark'), PALETTES[DARK_PALETTE])
  9. self.assertEqual(parse_color_setting('nocolor'), None)
  10. def test_fg(self):
  11. self.assertEqual(parse_color_setting('error=green'),
  12. dict(PALETTES[NOCOLOR_PALETTE],
  13. ERROR={'fg':'green'}))
  14. def test_fg_bg(self):
  15. self.assertEqual(parse_color_setting('error=green/blue'),
  16. dict(PALETTES[NOCOLOR_PALETTE],
  17. ERROR={'fg':'green', 'bg':'blue'}))
  18. def test_fg_opts(self):
  19. self.assertEqual(parse_color_setting('error=green,blink'),
  20. dict(PALETTES[NOCOLOR_PALETTE],
  21. ERROR={'fg':'green', 'opts': ('blink',)}))
  22. self.assertEqual(parse_color_setting('error=green,bold,blink'),
  23. dict(PALETTES[NOCOLOR_PALETTE],
  24. ERROR={'fg':'green', 'opts': ('blink','bold')}))
  25. def test_fg_bg_opts(self):
  26. self.assertEqual(parse_color_setting('error=green/blue,blink'),
  27. dict(PALETTES[NOCOLOR_PALETTE],
  28. ERROR={'fg':'green', 'bg':'blue', 'opts': ('blink',)}))
  29. self.assertEqual(parse_color_setting('error=green/blue,bold,blink'),
  30. dict(PALETTES[NOCOLOR_PALETTE],
  31. ERROR={'fg':'green', 'bg':'blue', 'opts': ('blink','bold')}))
  32. def test_override_palette(self):
  33. self.assertEqual(parse_color_setting('light;error=green'),
  34. dict(PALETTES[LIGHT_PALETTE],
  35. ERROR={'fg':'green'}))
  36. def test_override_nocolor(self):
  37. self.assertEqual(parse_color_setting('nocolor;error=green'),
  38. dict(PALETTES[NOCOLOR_PALETTE],
  39. ERROR={'fg': 'green'}))
  40. def test_reverse_override(self):
  41. self.assertEqual(parse_color_setting('error=green;light'), PALETTES[LIGHT_PALETTE])
  42. def test_multiple_roles(self):
  43. self.assertEqual(parse_color_setting('error=green;sql_field=blue'),
  44. dict(PALETTES[NOCOLOR_PALETTE],
  45. ERROR={'fg':'green'},
  46. SQL_FIELD={'fg':'blue'}))
  47. def test_override_with_multiple_roles(self):
  48. self.assertEqual(parse_color_setting('light;error=green;sql_field=blue'),
  49. dict(PALETTES[LIGHT_PALETTE],
  50. ERROR={'fg':'green'},
  51. SQL_FIELD={'fg':'blue'}))
  52. def test_empty_definition(self):
  53. self.assertEqual(parse_color_setting(';'), None)
  54. self.assertEqual(parse_color_setting('light;'), PALETTES[LIGHT_PALETTE])
  55. self.assertEqual(parse_color_setting(';;;'), None)
  56. def test_empty_options(self):
  57. self.assertEqual(parse_color_setting('error=green,'),
  58. dict(PALETTES[NOCOLOR_PALETTE],
  59. ERROR={'fg':'green'}))
  60. self.assertEqual(parse_color_setting('error=green,,,'),
  61. dict(PALETTES[NOCOLOR_PALETTE],
  62. ERROR={'fg':'green'}))
  63. self.assertEqual(parse_color_setting('error=green,,blink,,'),
  64. dict(PALETTES[NOCOLOR_PALETTE],
  65. ERROR={'fg':'green', 'opts': ('blink',)}))
  66. def test_bad_palette(self):
  67. self.assertEqual(parse_color_setting('unknown'), None)
  68. def test_bad_role(self):
  69. self.assertEqual(parse_color_setting('unknown='), None)
  70. self.assertEqual(parse_color_setting('unknown=green'), None)
  71. self.assertEqual(parse_color_setting('unknown=green;sql_field=blue'),
  72. dict(PALETTES[NOCOLOR_PALETTE],
  73. SQL_FIELD={'fg':'blue'}))
  74. def test_bad_color(self):
  75. self.assertEqual(parse_color_setting('error='), None)
  76. self.assertEqual(parse_color_setting('error=;sql_field=blue'),
  77. dict(PALETTES[NOCOLOR_PALETTE],
  78. SQL_FIELD={'fg':'blue'}))
  79. self.assertEqual(parse_color_setting('error=unknown'), None)
  80. self.assertEqual(parse_color_setting('error=unknown;sql_field=blue'),
  81. dict(PALETTES[NOCOLOR_PALETTE],
  82. SQL_FIELD={'fg':'blue'}))
  83. self.assertEqual(parse_color_setting('error=green/unknown'),
  84. dict(PALETTES[NOCOLOR_PALETTE],
  85. ERROR={'fg':'green'}))
  86. self.assertEqual(parse_color_setting('error=green/blue/something'),
  87. dict(PALETTES[NOCOLOR_PALETTE],
  88. ERROR={'fg':'green', 'bg': 'blue'}))
  89. self.assertEqual(parse_color_setting('error=green/blue/something,blink'),
  90. dict(PALETTES[NOCOLOR_PALETTE],
  91. ERROR={'fg':'green', 'bg': 'blue', 'opts': ('blink',)}))
  92. def test_bad_option(self):
  93. self.assertEqual(parse_color_setting('error=green,unknown'),
  94. dict(PALETTES[NOCOLOR_PALETTE],
  95. ERROR={'fg':'green'}))
  96. self.assertEqual(parse_color_setting('error=green,unknown,blink'),
  97. dict(PALETTES[NOCOLOR_PALETTE],
  98. ERROR={'fg':'green', 'opts': ('blink',)}))
  99. def test_role_case(self):
  100. self.assertEqual(parse_color_setting('ERROR=green'),
  101. dict(PALETTES[NOCOLOR_PALETTE],
  102. ERROR={'fg':'green'}))
  103. self.assertEqual(parse_color_setting('eRrOr=green'),
  104. dict(PALETTES[NOCOLOR_PALETTE],
  105. ERROR={'fg':'green'}))
  106. def test_color_case(self):
  107. self.assertEqual(parse_color_setting('error=GREEN'),
  108. dict(PALETTES[NOCOLOR_PALETTE],
  109. ERROR={'fg':'green'}))
  110. self.assertEqual(parse_color_setting('error=GREEN/BLUE'),
  111. dict(PALETTES[NOCOLOR_PALETTE],
  112. ERROR={'fg':'green', 'bg':'blue'}))
  113. self.assertEqual(parse_color_setting('error=gReEn'),
  114. dict(PALETTES[NOCOLOR_PALETTE],
  115. ERROR={'fg':'green'}))
  116. self.assertEqual(parse_color_setting('error=gReEn/bLuE'),
  117. dict(PALETTES[NOCOLOR_PALETTE],
  118. ERROR={'fg':'green', 'bg':'blue'}))
  119. def test_opts_case(self):
  120. self.assertEqual(parse_color_setting('error=green,BLINK'),
  121. dict(PALETTES[NOCOLOR_PALETTE],
  122. ERROR={'fg':'green', 'opts': ('blink',)}))
  123. self.assertEqual(parse_color_setting('error=green,bLiNk'),
  124. dict(PALETTES[NOCOLOR_PALETTE],
  125. ERROR={'fg':'green', 'opts': ('blink',)}))