def test_load_data_from_filesystem_exception(data_path_key, data_path): with mock.patch('marvin_python_toolbox.common.data.open') as mock_open: mock_open.side_effect = IOError # load_data should propagate IOError with pytest.raises(IOError): MarvinData.load_data(os.path.join('named_features', 'brands.json'))
def test_load_data_from_filesystem(data_path_key, data_path): data = 'return value' # If the data was not found try to load from filesystem with mock.patch('marvin_python_toolbox.common.data.open', create=True) as mock_open: mock_open.return_value = mock.MagicMock(spec=IOBase) mocked_fp = mock_open.return_value.__enter__.return_value mocked_fp.read.return_value = data content = MarvinData.load_data(os.path.join('named_features', 'brands.json')) mocked_fp.read.assert_called_once() assert content == data