コード例 #1
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
コード例 #2
0
ファイル: test_convert_unit.py プロジェクト: wirenic/Hallo
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
コード例 #3
0
ファイル: test_convert_repo.py プロジェクト: wirenic/Hallo
def test_get_prefix_group_by_name():
    # Set up test objects
    test_repo = ConvertRepo()
    test_group1 = ConvertPrefixGroup(test_repo, "group1")
    test_group2 = ConvertPrefixGroup(test_repo, "group2")
    test_repo.add_prefix_group(test_group1)
    test_repo.add_prefix_group(test_group2)
    # Test
    assert test_repo.get_prefix_group_by_name("group1") == test_group1
    assert test_repo.get_prefix_group_by_name("group2") == test_group2
コード例 #4
0
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)
コード例 #5
0
 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
コード例 #6
0
def test_json():
    # Set up stuff
    test_repo = ConvertRepo()
    prefix_group = ConvertPrefixGroup(test_repo, "test_group")
    # 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) == 0
    assert rebuild_group.name == "test_group"
コード例 #7
0
ファイル: test_convert_repo.py プロジェクト: wirenic/Hallo
def test_add_prefix_group():
    test_repo = ConvertRepo()
    test_group1 = ConvertPrefixGroup(test_repo, "group1")
    test_group2 = ConvertPrefixGroup(test_repo, "group2")
    # Add group
    test_repo.add_prefix_group(test_group1)
    # Check
    assert len(test_repo.prefix_group_list) == 1
    assert test_repo.prefix_group_list[0] == test_group1
    # Add group
    test_repo.add_prefix_group(test_group2)
    # Check
    assert len(test_repo.prefix_group_list) == 2
    assert test_group2 in test_repo.prefix_group_list
コード例 #8
0
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
コード例 #9
0
ファイル: test_convert_repo.py プロジェクト: wirenic/Hallo
def test_remove_prefix_group():
    # Set up test objects
    test_repo = ConvertRepo()
    test_group1 = ConvertPrefixGroup(test_repo, "group1")
    test_group2 = ConvertPrefixGroup(test_repo, "group2")
    test_repo.add_prefix_group(test_group1)
    test_repo.add_prefix_group(test_group2)
    # Remove group
    test_repo.remove_prefix_group(test_group1)
    # Check
    assert len(test_repo.prefix_group_list) == 1
    assert test_repo.prefix_group_list[0] == test_group2
    # Remove other group
    test_repo.remove_prefix_group(test_group2)
    # Check
    assert test_repo.prefix_group_list == []
コード例 #10
0
ファイル: test_convert_unit.py プロジェクト: wirenic/Hallo
def test_json():
    # Set up test objects
    test_repo = ConvertRepo()
    test_type = ConvertType(test_repo, "test_type")
    test_repo.add_type(test_type)
    prefix_group = ConvertPrefixGroup(test_repo, "test_group")
    test_repo.add_prefix_group(prefix_group)
    test_type.base_unit = ConvertUnit(test_type, ["base_unit"], 1)
    test_unit_names = ["name1", "name2"]
    test_value = 1337
    # Create test unit
    test_unit = ConvertUnit(test_type, test_unit_names, test_value)
    test_unit.update_offset(10)
    test_unit.add_abbr("abbr1")
    test_unit.valid_prefix_group = prefix_group
    # Convert to json and back
    json_data = test_unit.to_json()
    json_unit = ConvertUnit.from_json(
        test_type,
        json_data,
    )
    assert len(test_unit.abbr_list) == 1
    assert "abbr1" in json_unit.abbr_list
    assert json_unit.type == test_type
    assert len(test_unit.name_list) == 2
    assert "name1" in json_unit.name_list
    assert "name2" in json_unit.name_list
    assert json_unit.value == test_value
    assert json_unit.offset == 10
    assert json_unit.last_updated_date == test_unit.last_updated_date
    assert json_unit.valid_prefix_group == prefix_group
コード例 #11
0
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"
コード例 #12
0
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
コード例 #13
0
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"
コード例 #14
0
ファイル: test_convert_prefix.py プロジェクト: wirenic/Hallo
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
コード例 #15
0
ファイル: test_convert_repo.py プロジェクト: wirenic/Hallo
def test_json():
    test_repo = ConvertRepo()
    test_type1 = ConvertType(test_repo, "test_type1")
    test_type2 = ConvertType(test_repo, "test_type2")
    test_repo.add_type(test_type1)
    test_repo.add_type(test_type2)
    test_unit1 = ConvertUnit(test_type1, ["unit1"], 1)
    test_unit2 = ConvertUnit(test_type2, ["unit2"], 1)
    test_type1.base_unit = test_unit1
    test_type2.base_unit = test_unit2
    test_group1 = ConvertPrefixGroup(test_repo, "group1")
    test_group2 = ConvertPrefixGroup(test_repo, "group2")
    test_repo.add_prefix_group(test_group1)
    test_repo.add_prefix_group(test_group2)
    # Save to JSON and load
    try:
        try:
            os.rename("store/convert.json", "store/convert.json.tmp")
        except OSError:
            pass
        test_repo.save_json()
        new_repo = ConvertRepo.load_json()
        assert len(new_repo.type_list) == 2
        assert len(new_repo.prefix_group_list) == 2
        assert "test_type1" in [x.name for x in new_repo.type_list]
        assert "test_type2" in [x.name for x in new_repo.type_list]
        assert "group1" in [x.name for x in new_repo.prefix_group_list]
        assert "group2" in [x.name for x in new_repo.prefix_group_list]
    finally:
        try:
            os.remove("store/convert.json")
        except OSError:
            pass
        try:
            os.rename("store/convert.json.tmp", "store/convert.json")
        except OSError:
            pass
コード例 #16
0
ファイル: test_convert_prefix.py プロジェクト: wirenic/Hallo
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
コード例 #17
0
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
コード例 #18
0
def test_init():
    test_repo = ConvertRepo()
    prefix_group = ConvertPrefixGroup(test_repo, "test_group")
    assert prefix_group.repo == test_repo
    assert len(prefix_group.prefix_list) == 0
    assert prefix_group.name == "test_group"