Index: trunk/tests/test_input_data.py =================================================================== diff -u -r45 -r48 --- trunk/tests/test_input_data.py (.../test_input_data.py) (revision 45) +++ trunk/tests/test_input_data.py (.../test_input_data.py) (revision 48) @@ -111,7 +111,30 @@ # 3. Then assert validation_result + @pytest.mark.integrationtest + def test_given_valid_args_then_removes_duplicates(self): + # 1. Given + input_data = InputData() + input_data.input_variables = ['du', 'du', 'mmy'] + input_data.input_coordinates = [(42, 4.2)] + input_data.input_years = [1989, 1990, 1988, 1989] + expected_input_variables = ['du', 'mmy'] + expected_input_years = [1988, 1989, 1990] + validation_result = None + # 2. When + try: + validation_result = input_data.validate() + except Exception as e_info: + pytest.fail( + 'Exception risen {}'.format(str(e_info)) + + ' but not expected.') + + # 3. Then + assert validation_result + assert input_data.input_variables == expected_input_variables + assert input_data.input_years == expected_input_years + class Test_ValidateInputYears: @pytest.mark.unittest @@ -133,7 +156,48 @@ assert validation_result is None assert expected_message == str(e_info.value) + @pytest.mark.unittest + def test_when_unordered_input_years_then_orders_it(self): + # 1. Given + input_data = InputData() + input_data.input_years = [1989, 1990, 1980] + expected_input_years = [1980, 1989, 1990] + validation_result = None + + # 2. When + try: + validation_result = input_data.validate_input_years() + except Exception as e_info: + pytest.fail( + 'Exception risen {}'.format(str(e_info)) + + ' but not expected.') + + # 3. Then + assert validation_result + assert input_data.input_years == expected_input_years + + @pytest.mark.unittest + def test_when_input_years_with_repeated_years_then_removes_them(self): + # 1. Given + input_data = InputData() + input_data.input_years = [1990, 1989, 1989] + expected_input_years = [1989, 1990] + validation_result = None + + # 2. When + try: + validation_result = input_data.validate_input_years() + except Exception as e_info: + pytest.fail( + 'Exception risen {}'.format(str(e_info)) + + ' but not expected.') + + # 3. Then + assert validation_result + assert input_data.input_years == expected_input_years + + @pytest.mark.unittest def test_when_valid_input_years_returns_true(self): # 1. Given input_data = InputData() @@ -192,7 +256,27 @@ # 3. Then assert validation_result + @pytest.mark.unittest + def test_given_input_variables_then_removes_duplicates(self): + # 1. Given + input_data = InputData() + input_data.input_variables = ['du', 'du', 'mmy'] + expected_input_variables = ['du', 'mmy'] + validation_result = None + # 2. When + try: + validation_result = input_data.validate_input_variables() + except Exception as e_info: + pytest.fail( + 'Exception risen {}'.format(str(e_info)) + + ' but not expected.') + + # 3. Then + assert validation_result + assert input_data.input_variables == expected_input_variables + + class Test_ValidateInputCoordinates: @pytest.mark.unittest Index: trunk/SDToolBox/data_acquisition.py =================================================================== diff -u -r45 -r48 --- trunk/SDToolBox/data_acquisition.py (.../data_acquisition.py) (revision 45) +++ trunk/SDToolBox/data_acquisition.py (.../data_acquisition.py) (revision 48) @@ -84,7 +84,7 @@ """ if not self.input_variables: raise IOError(om.error_no_valid_list_of_vars) - self.input_variables = set(self.input_variables) + self.input_variables = list(set(self.input_variables)) return True def validate_input_years(self):