コード例 #1
0
ファイル: testConvertType.py プロジェクト: joshcoales/Hallo
 def test_add_unit(self):
     # Set up test objects
     test_repo = ConvertRepo()
     test_type = ConvertType(test_repo, "test_type")
     test_type.base_unit = ConvertUnit(test_type, ["base_unit"], 1)
     test_unit = ConvertUnit(test_type, ["name1", "name2"], 1337)
     # Add unit to type
     test_type.add_unit(test_unit)
     # Check
     assert len(test_type.unit_list) == 1
     assert test_type.unit_list[0] == test_unit
コード例 #2
0
 def test_build_list_from_user_input_no_match(self):
     # 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, ["name_a", "name_b"], 1337)
     test_type.add_unit(test_unit)
     # Run method
     try:
         ConvertMeasure.build_list_from_user_input(test_repo, "32 name_c")
         assert False, "Should have failed to find a valid unit."
     except Exception as e:
         assert "unrecognised unit" in str(e).lower()
コード例 #3
0
 def test_build_list_from_user_input_middle(self):
     # 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, ["name_a", "name_b"], 1337)
     test_type.add_unit(test_unit)
     # Run method
     try:
         ConvertMeasure.build_list_from_user_input(test_repo, "name_b 15 name_a")
         assert False, "Should have failed to find amount."
     except Exception as e:
         assert "cannot find amount" in str(e).lower()
コード例 #4
0
 def test_build_list_from_user_input_end(self):
     # 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)
     # Run method
     data = ConvertMeasure.build_list_from_user_input(test_repo, "name2 27")
     # Check results
     assert len(data) == 1
     assert data[0].amount == 27
     assert data[0].unit == test_unit
コード例 #5
0
ファイル: testConvertType.py プロジェクト: joshcoales/Hallo
 def test_get_full_unit_list(self):
     # Set up test objects
     test_repo = ConvertRepo()
     test_type = ConvertType(test_repo, "test_type")
     test_unitb = ConvertUnit(test_type, ["base_unit"], 1)
     test_type.base_unit = test_unitb
     test_unit1 = ConvertUnit(test_type, ["name1", "name2"], 1337)
     test_unit2 = ConvertUnit(test_type, ["name3", "name4"], 505)
     test_type.add_unit(test_unit1)
     test_type.add_unit(test_unit2)
     # Check full unit list
     assert len(test_type.get_full_unit_list()) == 3
     assert test_unitb in test_type.get_full_unit_list()
     assert test_unit1 in test_type.get_full_unit_list()
     assert test_unit2 in test_type.get_full_unit_list()
コード例 #6
0
ファイル: testConvertType.py プロジェクト: joshcoales/Hallo
 def test_get_unit_by_name(self):
     # Set up test objects
     test_repo = ConvertRepo()
     test_type = ConvertType(test_repo, "test_type")
     test_unitb = ConvertUnit(test_type, ["base_unit"], 1)
     test_type.base_unit = test_unitb
     test_unit1 = ConvertUnit(test_type, ["name1", "name2"], 1337)
     test_unit2 = ConvertUnit(test_type, ["name3", "name4"], 505)
     test_unit2.add_abbr("u2")
     test_type.add_unit(test_unit1)
     test_type.add_unit(test_unit2)
     # test some stuff
     assert test_type.get_unit_by_name("base_unit") == test_unitb
     assert test_type.get_unit_by_name("NAME1") == test_unit1
     assert test_type.get_unit_by_name("NaMe4") == test_unit2
     assert test_type.get_unit_by_name("u2") == test_unit2
コード例 #7
0
ファイル: testConvertType.py プロジェクト: joshcoales/Hallo
 def test_remove_unit(self):
     # Set up test objects
     test_repo = ConvertRepo()
     test_type = ConvertType(test_repo, "test_type")
     test_type.base_unit = ConvertUnit(test_type, ["base_unit"], 1)
     test_unit1 = ConvertUnit(test_type, ["name1", "name2"], 1337)
     test_unit2 = ConvertUnit(test_type, ["name3", "name4"], 505)
     test_type.add_unit(test_unit1)
     test_type.add_unit(test_unit2)
     # Check it's all set up correctly
     assert len(test_type.unit_list) == 2
     # Remove unit from type
     test_type.remove_unit(test_unit1)
     # Check
     assert len(test_type.unit_list) == 1
     assert test_type.unit_list[0] == test_unit2
コード例 #8
0
 def test_build_list_from_user_input_prefix(self):
     # 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
コード例 #9
0
 def test_build_list_from_user_input_multi_match(self):
     # Setup test objects
     test_repo = ConvertRepo()
     test_type1 = ConvertType(test_repo, "test_type1")
     test_type1.base_unit = ConvertUnit(test_type1, ["base_unit1"], 1)
     test_type2 = ConvertType(test_repo, "test_type2")
     test_type2.base_unit = ConvertUnit(test_type2, ["base_unit2"], 1)
     test_repo.add_type(test_type1)
     test_repo.add_type(test_type2)
     test_unit1 = ConvertUnit(test_type1, ["name1", "name2"], 1337)
     test_unit2 = ConvertUnit(test_type2, ["name2", "name3"], 567)
     test_type1.add_unit(test_unit1)
     test_type2.add_unit(test_unit2)
     # Run method
     data = ConvertMeasure.build_list_from_user_input(test_repo, "7 name2")
     # Check results
     assert len(data) == 2
     assert data[0].amount == 7
     assert data[1].amount == 7
     assert test_unit1 in [data[x].unit for x in [0, 1]]
     assert test_unit2 in [data[x].unit for x in [0, 1]]
コード例 #10
0
ファイル: testConvertType.py プロジェクト: joshcoales/Hallo
 def test_json(self):
     # Set up test objects
     test_repo = ConvertRepo()
     test_type = ConvertType(test_repo, "test_type")
     test_type.decimals = 4
     test_unitb = ConvertUnit(test_type, ["base_unit"], 1)
     test_type.base_unit = test_unitb
     test_unit1 = ConvertUnit(test_type, ["name1", "name2"], 1337)
     test_unit2 = ConvertUnit(test_type, ["name3", "name4"], 505)
     test_unit2.add_abbr("u2")
     test_type.add_unit(test_unit1)
     test_type.add_unit(test_unit2)
     # Collapse to XML and rebuild
     test_json = test_type.to_json()
     rebuild_type = ConvertType.from_json(test_repo, test_json)
     # Test the type
     assert rebuild_type.repo == test_repo
     assert len(rebuild_type.unit_list) == 2
     assert rebuild_type.name == "test_type"
     assert rebuild_type.decimals == 4
     assert rebuild_type.base_unit.name_list[0] == "base_unit"
コード例 #11
0
class ConvertFunctionTestBase(TestBase, unittest.TestCase):

    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 tearDown(self):
        super().tearDown()
        # Put all the normal convert json back where it should be
        try:
            os.remove("store/convert.json")
        except OSError:
            pass
        try:
            os.rename("store/convert.json.tmp", "store/convert.json")
        except OSError:
            pass
コード例 #12
0
ファイル: testConvertRepo.py プロジェクト: joshcoales/Hallo
 def test_get_full_unit_list(self):
     # Set up test objects
     test_repo = ConvertRepo()
     test_type1 = ConvertType(test_repo, "test_type1")
     test_repo.add_type(test_type1)
     test_unit1 = ConvertUnit(test_type1, ["unit1"], 1)
     test_unit2 = ConvertUnit(test_type1, ["unit2"], 10)
     test_unit3 = ConvertUnit(test_type1, ["unit3"], 100)
     test_type1.base_unit = test_unit1
     test_type1.add_unit(test_unit2)
     test_type1.add_unit(test_unit3)
     test_type2 = ConvertType(test_repo, "test_type2")
     test_unit4 = ConvertUnit(test_type2, ["unit4"], 1)
     test_unit5 = ConvertUnit(test_type2, ["unit5"], 1000)
     test_type2.base_unit = test_unit4
     test_type2.add_unit(test_unit5)
     test_repo.add_type(test_type2)
     # Test
     assert test_unit1 in test_repo.get_full_unit_list()
     assert test_unit2 in test_repo.get_full_unit_list()
     assert test_unit3 in test_repo.get_full_unit_list()
     assert test_unit4 in test_repo.get_full_unit_list()
     assert test_unit5 in test_repo.get_full_unit_list()
     assert len(test_repo.get_full_unit_list()) == 5