def test_file_parse(self): # write VARS_FILE into a file that gets cleaned up, then test parsing it with temp_file() as filename: f = open(filename, 'w') f.write(VARS_FILE) f.close() result = BStrapVars.factory_from_sass_file(filename) result_json = result.base_to_json() self.assertEqual(VARS_JSON, result_json) # test error handling properly ignores bad variables with temp_file() as filename: f = open(filename, 'w') f.write(ERROR_VARS_FILE) f.close() result = BStrapVars.factory_from_sass_file(filename) result_json = result.base_to_json() self.assertEqual(ERROR_VARS_JSON, result_json)
def test_custom_and_overrides(self): c = { self.comp1_1.name:'#AAA', self.comp2_1.name:'#BBB', self.compN_2.name:'one', self.compN_3.name:'two', } bsv = BStrapVars.factory(self.data, c) expected = [(comp.name, comp.value) for comp in self.all_comps] expected[0] = (self.comp1_1.name, '#AAA') expected[3] = (self.comp2_1.name, '#BBB') expected[6] = (self.compN_2.name, 'one') expected[7] = (self.compN_3.name, 'two') result = list(bsv.all_value_pairs()) self.assertEqual(result, expected) c = json.dumps(c) bsv = BStrapVars.factory(self.data, c) result = list(bsv.all_value_pairs()) self.assertEqual(result, expected) # override some of the custom values, blank override means use default o = { self.comp1_1.name:'#CCC', self.comp2_1.name:'', self.compN_2.name:'three', } expected[0] = (self.comp1_1.name, '#CCC') expected[3] = (self.comp2_1.name, '#fff') expected[6] = (self.compN_2.name, 'three') bsv = BStrapVars.factory(self.data, c, o) result = list(bsv.all_value_pairs()) self.assertEqual(result, expected) o = json.dumps(o) bsv = BStrapVars.factory(self.data, c, o) result = list(bsv.all_value_pairs()) self.assertEqual(result, expected) # test serialization expected = BStrapVars.factory(self.data, c) expected_base = expected.base_to_json() expected_custom = expected.custom_to_json() result = BStrapVars.factory(expected_base, expected_custom) result_base = result.base_to_json() result_custom = result.custom_to_json() self.assertEqual(result_base, expected_base) self.assertEqual(result_custom, expected_custom)
def test_custom_and_overrides(self): c = { self.comp1_1.name: '#AAA', self.comp2_1.name: '#BBB', self.compN_2.name: 'one', self.compN_3.name: 'two', } bsv = BStrapVars.factory(self.data, c) expected = [(comp.name, comp.value) for comp in self.all_comps] expected[0] = (self.comp1_1.name, '#AAA') expected[3] = (self.comp2_1.name, '#BBB') expected[6] = (self.compN_2.name, 'one') expected[7] = (self.compN_3.name, 'two') result = list(bsv.all_value_pairs()) self.assertEqual(result, expected) c = json.dumps(c) bsv = BStrapVars.factory(self.data, c) result = list(bsv.all_value_pairs()) self.assertEqual(result, expected) # override some of the custom values, blank override means use default o = { self.comp1_1.name: '#CCC', self.comp2_1.name: '', self.compN_2.name: 'three', } expected[0] = (self.comp1_1.name, '#CCC') expected[3] = (self.comp2_1.name, '#fff') expected[6] = (self.compN_2.name, 'three') bsv = BStrapVars.factory(self.data, c, o) result = list(bsv.all_value_pairs()) self.assertEqual(result, expected) o = json.dumps(o) bsv = BStrapVars.factory(self.data, c, o) result = list(bsv.all_value_pairs()) self.assertEqual(result, expected) # test serialization expected = BStrapVars.factory(self.data, c) expected_base = expected.base_to_json() expected_custom = expected.custom_to_json() result = BStrapVars.factory(expected_base, expected_custom) result_base = result.base_to_json() result_custom = result.custom_to_json() self.assertEqual(result_base, expected_base) self.assertEqual(result_custom, expected_custom)
def test_base(self): # check we don't blow up if no data BStrapVars.factory({}) BStrapVars.factory({}, {}) BStrapVars.factory({}, {}, {}) BStrapVars.factory('{}') BStrapVars.factory('{}', '{}') BStrapVars.factory('{}', '{}', '{}') # -- test valid data bsv = BStrapVars.factory(self.data) # check sections expected = [self.section1.name, self.section2.name] self.assertEqual(list(bsv.sections.keys()), expected) # check all components in sections expected = [comp.name for comp in self.all_comps] result = [comp.name for comp in bsv.all_components.values()] self.assertEqual(result, expected) # check values expected = [(comp.name, comp.value) for comp in self.all_comps] result = list(bsv.all_value_pairs()) self.assertEqual(result, expected) # check colour values expected = list(self.colour_values.values()) result = list(bsv.colour_values.values()) self.assertEqual(result, expected) # -- test dependencies expected = set([self.comp1_2.name, self.comp1_3.name]) result = bsv.dependencies(self.comp1_1.name) self.assertEqual(result, expected) # check something without dependencies result = bsv.dependencies(self.comp2_1.name) self.assertEqual(result, set([]))