import pytest import os from os import path import netCDF4 from tests.TestUtils import TestUtils from netCDF4 import Dataset from SDToolBox import main as main from SDToolBox.extract_data import ExtractData from SDToolBox import data_acquisition from SDToolBox import outputmessages as om class Test_create: @pytest.mark.unittest def test_given_no_input_data_then_exception_is_risen(self): # 1. Given input_data = None output_result = None expected_error = om.error_no_valid_input_data # 2. When with pytest.raises(IOError) as e_info: output_result = ExtractData(input_data) # 3. Then error_message = str(e_info.value) assert output_result is None assert error_message == expected_error, '' + \ 'Expected exception message {},'.format(expected_error) + \ 'retrieved {}'.format(error_message) @pytest.mark.unittest def test_given_no_input_coords_then_exception_is_risen(self): # 1. Given input_data = data_acquisition.InputData() input_data.coord_list = [] data_extractor = None expected_error = om.error_not_enough_coordinates # 2. When with pytest.raises(IOError) as e_info: data_extractor = ExtractData(input_data) # 3. Then error_message = str(e_info.value) assert data_extractor is None assert error_message == expected_error, '' + \ 'Expected exception message {},'.format(expected_error) + \ 'retrieved {}'.format(error_message) @pytest.mark.unittest def test_given_no_list_of_vars_then_exception_is_risen(self): # 1. Given input_data = data_acquisition.InputData() input_data.coord_list = [(4.2, 42)] input_data.input_variables = None data_extractor = None expected_error = om.error_no_valid_list_of_vars # 2. When with pytest.raises(IOError) as e_info: data_extractor = ExtractData(input_data) # 3. Then error_message = str(e_info.value) assert data_extractor is None assert error_message == expected_error, '' + \ 'Expected exception message {},'.format(expected_error) + \ 'retrieved {}'.format(error_message)