63 lines
2.1 KiB
Python
63 lines
2.1 KiB
Python
import unittest
|
|
import sys
|
|
|
|
import style
|
|
|
|
|
|
class StyleTestCase(unittest.TestCase):
|
|
|
|
def test_argument_on_root_style_builder(self):
|
|
# test if a call of the root StyleBuilder raises a TypeError
|
|
with self.assertRaises(TypeError):
|
|
style('test')
|
|
|
|
def test_enabled(self):
|
|
# test if enabled by default
|
|
self.assertTrue(style.enabled)
|
|
|
|
def test_single_string(self):
|
|
# test styling of single string
|
|
self.assertIn('test', style.red('test'))
|
|
self.assertIn('31', str(style.red('test')))
|
|
|
|
def test_multiple_strings(self):
|
|
# test styling of multiple strings
|
|
self.assertIn('test1 test2', style.red('test1', 'test2'))
|
|
self.assertIn('31', str(style.red('test1', 'test2')))
|
|
|
|
def test_non_string_arguments(self):
|
|
# test styling of multiple arguments that are not strings
|
|
self.assertIn('1 True 0.1', style.red(1, True, 0.1))
|
|
self.assertIn('31', str(style.red(1, True, 0.1)))
|
|
|
|
def test_seperator(self):
|
|
# test custom seperator
|
|
self.assertIn('test1, test2', style.red('test1', 'test2', sep=', '))
|
|
|
|
def test_non_string_seperator(self):
|
|
# test if a non string seperator raises a TypeError
|
|
with self.assertRaises(TypeError):
|
|
style.red('test1', 'test2', sep=0)
|
|
|
|
def test_style_chaining(self):
|
|
# test that chaining style attributes works
|
|
self.assertIn('31;47;1', str(style.red.on_white.bold('test')))
|
|
self.assertIn('47;31;1', str(style.on_white.red.bold('test')))
|
|
self.assertIn('47;1;31', str(style.on_white.bold.red('test')))
|
|
|
|
def test_len(self):
|
|
# test if the lenght is independet of the style
|
|
styled_string = style.red('test')
|
|
|
|
self.assertEqual(len(styled_string), len('test'))
|
|
self.assertTrue(len(str(styled_string)) > len(styled_string))
|
|
|
|
def test_enabling(self):
|
|
# test manually enabling and disabling
|
|
style.enabled = False
|
|
self.assertEqual('test', style.red('test'))
|
|
|
|
style.enabled = True
|
|
self.assertIn('test', str(style.red('test')))
|
|
self.assertIn('31', str(style.red('test')))
|