test_generate.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. from unittest import TestCase
  2. from generate import generate_block, generate_group
  3. class TestGenerateBlock(TestCase):
  4. def setUp(self):
  5. self.selector = 'div'
  6. self.properties = [('color', '#000'), ('font-weight', 'bold')]
  7. def test_nocompress_empty(self):
  8. self.assertGenerates(['div'], [], 'div {\n}')
  9. def test_nocompress_single_property(self):
  10. selectors = ['div']
  11. properties = [('color', '#000')]
  12. self.assertGenerates(selectors, properties, '''
  13. div {
  14. color: #000;
  15. }''')
  16. def test_nocompress_multiple_properties(self):
  17. selectors = ['div']
  18. properties = [('color', '#000'), ('font-weight', 'bold')]
  19. self.assertGenerates(selectors, properties, '''
  20. div {
  21. color: #000;
  22. font-weight: bold;
  23. }''')
  24. def test_nocompress_multiple_selectors(self):
  25. selectors = ['div', 'p']
  26. properties = [('color', '#000')]
  27. self.assertGenerates(selectors, properties, '''
  28. div,
  29. p {
  30. color: #000;
  31. }''')
  32. def test_nocompress_multiple_selectors_sorted(self):
  33. self.assertMultiLineEqual(generate_block(['div', 'p'], []),
  34. generate_block(['p', 'div'], []))
  35. def test_compress_whitespace(self):
  36. selectors = ['div']
  37. properties = [('color', '#000'), ('font-weight', 'bold')]
  38. self.assertGenerates(selectors, properties,
  39. 'div{color:#000;font-weight:bold}',
  40. compress_whitespace=True)
  41. def assertGenerates(self, selectors, props, css, **kwargs):
  42. self.assertMultiLineEqual(generate_block(selectors, props, **kwargs),
  43. css.strip().replace(' ', '\t'))
  44. class TestGenerateGroup(TestCase):
  45. pass