def test_get_prefix_by_abbr(): # Set up stuff test_repo = ConvertRepo() prefix_group = ConvertPrefixGroup(test_repo, "test_group") prefix_name1 = "test_name1" prefix_abbr1 = "test_abbr1" prefix_mult1 = 1001 test_prefix1 = ConvertPrefix(prefix_group, prefix_name1, prefix_abbr1, prefix_mult1) prefix_name2 = "test_name2" prefix_abbr2 = "test_abbr2" prefix_mult2 = 1002 test_prefix2 = ConvertPrefix(prefix_group, prefix_name2, prefix_abbr2, prefix_mult2) prefix_group.add_prefix(test_prefix1) prefix_group.add_prefix(test_prefix2) # Test things assert prefix_group.get_prefix_by_abbr(prefix_abbr1) == test_prefix1 assert prefix_group.get_prefix_by_abbr(prefix_abbr2) == test_prefix2 assert prefix_group.get_prefix_by_abbr( prefix_abbr1.upper()) == test_prefix1 assert prefix_group.get_prefix_by_abbr( prefix_abbr2.upper()) == test_prefix2 assert (prefix_group.get_prefix_by_abbr( prefix_abbr1.capitalize()) == test_prefix1) assert (prefix_group.get_prefix_by_abbr( prefix_abbr2.capitalize()) == test_prefix2)
def test_remove_prefix(): # Set up stuff test_repo = ConvertRepo() prefix_group = ConvertPrefixGroup(test_repo, "test_group") prefix_name1 = "test_name1" prefix_abbr1 = "test_abbr1" prefix_mult1 = 1001 test_prefix1 = ConvertPrefix(prefix_group, prefix_name1, prefix_abbr1, prefix_mult1) prefix_name2 = "test_name2" prefix_abbr2 = "test_abbr2" prefix_mult2 = 1002 test_prefix2 = ConvertPrefix(prefix_group, prefix_name2, prefix_abbr2, prefix_mult2) prefix_group.add_prefix(test_prefix1) prefix_group.add_prefix(test_prefix2) assert test_prefix1 in prefix_group.prefix_list assert test_prefix2 in prefix_group.prefix_list assert len(prefix_group.prefix_list) == 2 # Remove some prefixes and test prefix_group.remove_prefix(test_prefix1) assert len(prefix_group.prefix_list) == 1 assert test_prefix2 in prefix_group.prefix_list prefix_group.remove_prefix(test_prefix2) assert len(prefix_group.prefix_list) == 0
def test_get_appropriate_prefix(): # Set up stuff test_repo = ConvertRepo() prefix_group = ConvertPrefixGroup(test_repo, "test_group") prefix_name1 = "test_name1" prefix_abbr1 = "test_abbr1" prefix_mult1 = 1000 test_prefix1 = ConvertPrefix(prefix_group, prefix_name1, prefix_abbr1, prefix_mult1) prefix_name2 = "test_name2" prefix_abbr2 = "test_abbr2" prefix_mult2 = 10 test_prefix2 = ConvertPrefix(prefix_group, prefix_name2, prefix_abbr2, prefix_mult2) prefix_name3 = "test_name3" prefix_abbr3 = "test_abbr3" prefix_mult3 = 0.01 test_prefix3 = ConvertPrefix(prefix_group, prefix_name3, prefix_abbr3, prefix_mult3) prefix_group.add_prefix(test_prefix1) prefix_group.add_prefix(test_prefix2) prefix_group.add_prefix(test_prefix3) # Test things assert prefix_group.get_appropriate_prefix(2) is None assert prefix_group.get_appropriate_prefix(24) == test_prefix2 assert prefix_group.get_appropriate_prefix(1234) == test_prefix1 assert prefix_group.get_appropriate_prefix(0.5) == test_prefix3
def test_get_prefix_from_user_input_abbr(): # Set up prefix group test_repo = ConvertRepo() prefix_group = ConvertPrefixGroup(test_repo, "test_group") prefix_name1 = "test_name1" prefix_abbr1 = "test_abbr1" prefix_mult1 = 1001 test_prefix1 = ConvertPrefix(prefix_group, prefix_name1, prefix_abbr1, prefix_mult1) prefix_name2 = "test_name2" prefix_abbr2 = "test_abbr2" prefix_mult2 = 1002 test_prefix2 = ConvertPrefix(prefix_group, prefix_name2, prefix_abbr2, prefix_mult2) prefix_group.add_prefix(test_prefix1) prefix_group.add_prefix(test_prefix2) # Set up test object test_type = ConvertType(test_repo, "test_type") test_type.base_unit = ConvertUnit(test_type, ["base_unit"], 1) test_unit_names = ["name1", "name2", "NaMe3"] test_value = 1337 test_unit = ConvertUnit(test_type, test_unit_names, test_value) test_unit.add_abbr("ABbr1") test_unit.add_abbr("abbr2") test_unit.valid_prefix_group = prefix_group # Get prefix from input assert test_unit.get_prefix_from_user_input( "test_abbr1abbr2") == test_prefix1 assert test_unit.get_prefix_from_user_input( "test_abbr1not_a_unit") is False assert test_unit.get_prefix_from_user_input("not_a_prefixabbr2") is False assert test_unit.get_prefix_from_user_input("abbr2") is None # Remove prefix group and see what happens test_unit.valid_prefix_group = None assert test_unit.get_prefix_from_user_input("test_abbr1abbr2") is False
def setUp(self): super().setUp() # Create test repo self.test_repo = ConvertRepo() self.test_type1 = ConvertType(self.test_repo, "test_type1") self.test_repo.add_type(self.test_type1) self.test_unit1a = ConvertUnit(self.test_type1, ["unit1a"], 1) self.test_type1.base_unit = self.test_unit1a self.test_unit1b = ConvertUnit(self.test_type1, ["unit1b", "same_name"], 2) self.test_unit1b.abbr_list = ["abbr1b", "abbr1bz"] self.test_type1.add_unit(self.test_unit1b) self.test_unit1c = ConvertUnit(self.test_type1, ["unit1c"], 4) self.test_unit1b.abbr_list = ["abbr1c"] self.test_type1.add_unit(self.test_unit1c) # Add a second type self.test_type2 = ConvertType(self.test_repo, "test_type2") self.test_repo.add_type(self.test_type2) self.test_unit2a = ConvertUnit(self.test_type2, ["unit2a"], 1) self.test_type2.base_unit = self.test_unit2a self.test_unit2b = ConvertUnit(self.test_type2, ["unit2b", "same_name"], 5) self.test_type2.add_unit(self.test_unit2b) # Add a prefix group self.test_group1 = ConvertPrefixGroup(self.test_repo, "test_group1") self.test_repo.add_prefix_group(self.test_group1) self.test_prefix1a = ConvertPrefix(self.test_group1, "prefix1a", "pref1a", 5) self.test_group1.add_prefix(self.test_prefix1a) self.test_prefix1b = ConvertPrefix(self.test_group1, "prefixb", "pref1b", 15) self.test_group1.add_prefix(self.test_prefix1b) # Add a second prefix group self.test_group2 = ConvertPrefixGroup(self.test_repo, "test_group2") self.test_repo.add_prefix_group(self.test_group2) self.test_prefix2a = ConvertPrefix(self.test_group2, "prefix2a", "pref2a", 7) self.test_group2.add_prefix(self.test_prefix2a) self.test_prefix2b = ConvertPrefix(self.test_group2, "prefixb", "pref2b", 42) self.test_group2.add_prefix(self.test_prefix2b) # Move current convert.json try: os.rename("store/convert.json", "store/convert.json.tmp") except OSError: pass # Put this test repo into the Convert object convert_function = self.function_dispatcher.get_function_by_name( "convert") convert_function_obj = self.function_dispatcher.get_function_object( convert_function) # type: Convert convert_function_obj.convert_repo = self.test_repo
def test_json(): test_repo = ConvertRepo() prefix_group = ConvertPrefixGroup(test_repo, "test_group") prefix_name = "test_name" prefix_abbr = "test_abbr" prefix_mult = 1337 test_prefix = ConvertPrefix(prefix_group, prefix_name, prefix_abbr, prefix_mult) json = test_prefix.to_json() rebuild_prefix = ConvertPrefix.from_json( prefix_group, json, ) assert rebuild_prefix.prefix == test_prefix.prefix assert rebuild_prefix.abbreviation == test_prefix.abbreviation assert rebuild_prefix.multiplier == test_prefix.multiplier
def test_to_string_with_prefix(): # Setup test objects test_repo = ConvertRepo() test_type = ConvertType(test_repo, "test_type") test_type.base_unit = ConvertUnit(test_type, ["base_unit"], 1) test_type.decimals = 3 test_unit = ConvertUnit(test_type, ["name1", "name2"], 1337) prefix_group = ConvertPrefixGroup(test_repo, "test_group") test_prefix1 = ConvertPrefix(prefix_group, "ten", "10", 10) test_prefix2 = ConvertPrefix(prefix_group, "hundred", "100", 100) prefix_group.add_prefix(test_prefix1) prefix_group.add_prefix(test_prefix2) test_unit.valid_prefix_group = prefix_group measure1 = ConvertMeasure(17.5, test_unit) # Get string measure_str = measure1.to_string_with_prefix(test_prefix2) # Check assert measure_str == "0.175 hundredname1"
def test_init(): test_repo = ConvertRepo() prefix_group = ConvertPrefixGroup(test_repo, "test_group") prefix_name = "test_name" prefix_abbr = "test_abbr" prefix_mult = 1337 test_prefix = ConvertPrefix(prefix_group, prefix_name, prefix_abbr, prefix_mult) assert test_prefix.prefix_group == prefix_group assert test_prefix.prefix == "test_name" assert test_prefix.abbreviation == "test_abbr" assert test_prefix.multiplier == 1337
def test_json_contents(): # Set up stuff test_repo = ConvertRepo() prefix_group = ConvertPrefixGroup(test_repo, "test_group") prefix_name1 = "test_name1" prefix_abbr1 = "test_abbr1" prefix_mult1 = 1001 test_prefix1 = ConvertPrefix(prefix_group, prefix_name1, prefix_abbr1, prefix_mult1) prefix_group.add_prefix(test_prefix1) prefix_name2 = "test_name2" prefix_abbr2 = "test_abbr2" prefix_mult2 = 1002 test_prefix2 = ConvertPrefix(prefix_group, prefix_name2, prefix_abbr2, prefix_mult2) prefix_group.add_prefix(test_prefix2) # Collapse to XML and rebuild json_data = prefix_group.to_json() rebuild_group = ConvertPrefixGroup.from_json( test_repo, json_data, ) assert rebuild_group.repo == test_repo assert len(rebuild_group.prefix_list) == 2 assert rebuild_group.name == "test_group" count1 = 0 count2 = 0 for prefix in rebuild_group.prefix_list: assert prefix.prefix_group == rebuild_group assert prefix.prefix in [prefix_name1, prefix_name2] assert prefix.abbreviation in [prefix_abbr1, prefix_abbr2] assert prefix.multiplier in [prefix_mult1, prefix_mult2] count1 += prefix.prefix == prefix_name1 count2 += prefix.prefix == prefix_name2 assert count1 == 1 assert count2 == 1
def test_to_string(): # Setup test objects test_repo = ConvertRepo() test_type = ConvertType(test_repo, "test_type") test_type.base_unit = ConvertUnit(test_type, ["base_unit"], 1) test_type.decimals = 3 test_unit = ConvertUnit(test_type, ["name1", "name2"], 1337) prefix_group = ConvertPrefixGroup(test_repo, "test_group") test_prefix = ConvertPrefix(prefix_group, "ten", "10", 10) prefix_group.add_prefix(test_prefix) test_unit.valid_prefix_group = prefix_group measure1 = ConvertMeasure(17.5, test_unit) # Get string measure_str = measure1.to_string() # Check assert str(measure1) == measure_str assert measure_str == "1.750 tenname1"
def test_build_list_from_user_input_prefix(): # Setup test objects test_repo = ConvertRepo() test_type = ConvertType(test_repo, "test_type") test_type.base_unit = ConvertUnit(test_type, ["base_unit"], 1) test_repo.add_type(test_type) test_unit = ConvertUnit(test_type, ["name1", "name2"], 1337) test_type.add_unit(test_unit) prefix_group = ConvertPrefixGroup(test_repo, "test_group") test_prefix = ConvertPrefix(prefix_group, "ten", "10", 10) prefix_group.add_prefix(test_prefix) test_unit.valid_prefix_group = prefix_group # Run method data = ConvertMeasure.build_list_from_user_input(test_repo, "tenname2 27") # Check results assert len(data) == 1 assert data[0].amount == 270 assert data[0].unit == test_unit