def test_change_settings_for_testing(self): cwd = getcwd() if_cases = ( settings.markdown_directory == path.join(cwd, 'test_markdown'), settings.project_directory == path.join(cwd, 'test_examplesite'), settings.css_directory == path.join(settings.project_directory, 'test_css'), settings.docs_directory == path.join(cwd, 'test_docs'), ) else_cases = ( settings.markdown_directory == path.join(cwd, 'blowdrycss', 'unit_tests', 'test_markdown'), settings.project_directory == path.join(cwd, 'blowdrycss', 'unit_tests', 'test_examplesite'), settings.css_directory == path.join(settings.project_directory, 'test_css'), settings.docs_directory == path.join(cwd, 'blowdrycss', 'unit_tests', 'test_docs'), ) change_settings_for_testing() if cwd.endswith('unit_tests'): # Allows running of pycharm unittest. for i, if_case in enumerate(if_cases): self.assertTrue(if_case, msg="index %s\n%s\n%s" % (i, settings.project_directory, path.join(cwd, 'test_examplesite'))) chdir('../..') cwd_else = getcwd() change_settings_for_testing() # Re-run with new directory else_cases = ( settings.markdown_directory == path.join(cwd_else, 'blowdrycss', 'unit_tests', 'test_markdown'), settings.project_directory == path.join(cwd_else, 'blowdrycss', 'unit_tests', 'test_examplesite'), settings.css_directory == path.join(settings.project_directory, 'test_css'), settings.docs_directory == path.join(cwd_else, 'blowdrycss', 'unit_tests', 'test_docs'), ) for else_case in else_cases: self.assertTrue(else_case) else: # Run unittest cmd from the root directory. for else_case in else_cases: self.assertTrue(else_case) chdir(path.join(cwd, 'blowdrycss', 'unit_tests')) cwd_if = getcwd() change_settings_for_testing() # Re-run with new directory if_cases = ( settings.markdown_directory == path.join(cwd_if, 'test_markdown'), settings.project_directory == path.join(cwd_if, 'test_examplesite'), settings.css_directory == path.join(settings.project_directory, 'test_css'), settings.docs_directory == path.join(cwd_if, 'test_docs'), ) for if_case in if_cases: self.assertTrue(if_case) chdir(cwd) # Reset directory back to the way it was.
# python 2 from __future__ import absolute_import, division # builtins from unittest import TestCase, main # custom from blowdrycss.utilities import change_settings_for_testing from blowdrycss.unitparser import UnitParser import blowdrycss_settings as settings change_settings_for_testing() class TestUnitParser(TestCase): def test_default_units(self): property_names = [ 'font-size', 'padding', 'margin', 'pitch', 'text-indent', 'volume', 'width', 'font-weight', 'color', 'invalid', '', 'none', ] expected_units = ['px', 'px', 'px', 'Hz', 'px', '%', 'px', '', '', '', '', ''] for i, property_name in enumerate(property_names): unit_parser = UnitParser(property_name=property_name) self.assertEqual(unit_parser.default_units(), expected_units[i]) def test_add_units_multi_value_conversion_True_invalid_pass_through(self): # Handles cases input like: '1a2', '-35mx 15mx', '1px 2 m11 2', '22.5px 10 22.5px 10' # Outputs: '1a2', '-35mx 15mx', '0.0625em 0.125em m11 0.125em', '22.5px 0.625em 22.5px 0.625em' property_name = 'padding' property_values = ['1a2', '-35mx 15mx', '1px 2 m11 2', '22.5px 10 22.5px 10']