From e304597fab9a5bbba8decc2bcbbde024b35de9bd Mon Sep 17 00:00:00 2001 From: Mathieu Blondel Date: Tue, 21 Jun 2011 17:57:21 +0900 Subject: [PATCH] Raise error if file doesn't exist. --- scikits/learn/datasets/_svmlight_format.cpp | 3 +++ scikits/learn/datasets/tests/test_svmlight_format.py | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/scikits/learn/datasets/_svmlight_format.cpp b/scikits/learn/datasets/_svmlight_format.cpp index b19d71eae45..ef5916a3ef8 100644 --- a/scikits/learn/datasets/_svmlight_format.cpp +++ b/scikits/learn/datasets/_svmlight_format.cpp @@ -269,6 +269,9 @@ void parse_file(char const *file_path, file_stream.rdbuf()->pubsetbuf(&buffer[0], buffer_size); file_stream.open(file_path); + if (!file_stream) + throw std::ios_base::failure("File doesn't exist!"); + std::string line; while (std::getline(file_stream, line)) parse_line(line, data, indices, indptr, labels); diff --git a/scikits/learn/datasets/tests/test_svmlight_format.py b/scikits/learn/datasets/tests/test_svmlight_format.py index be849cd21ee..fedf53c7dd2 100644 --- a/scikits/learn/datasets/tests/test_svmlight_format.py +++ b/scikits/learn/datasets/tests/test_svmlight_format.py @@ -67,3 +67,7 @@ def test_load_invalid_file(): @raises(TypeError) def test_not_a_filename(): load_svmlight_file(1) + +@raises(IOError) +def test_invalid_filename(): + load_svmlight_file("trou pic nic douille")