test_generate.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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, p {
  29. color: #000;
  30. }''')
  31. def test_nocompress_multiple_selectors_sorted(self):
  32. self.assertMultiLineEqual(generate_block(['div', 'p'], []),
  33. generate_block(['p', 'div'], []))
  34. def test_compress_whitespace(self):
  35. selectors = ['div']
  36. properties = [('color', '#000'), ('font-weight', 'bold')]
  37. self.assertGenerates(selectors, properties,
  38. 'div{color:#000;font-weight:bold}',
  39. compress_whitespace=True)
  40. def assertGenerates(self, selectors, props, css, **kwargs):
  41. self.assertMultiLineEqual(generate_block(selectors, props, **kwargs),
  42. css.strip().replace(' ', '\t'))
  43. class TestGenerateGroup(TestCase):
  44. pass