def test_python_read_too_long(self): """Test that read() returning too many bytes is handled""" class MyFileLike(object): def read(self, numbytes): return " " * (numbytes + 10) fh = MyFileLike() f = _format.ihm_file_new_from_python(fh) reader = _format.ihm_reader_new(f) self.assertRaises(ValueError, _format.ihm_read_file, reader) _format.ihm_reader_free(reader)
def test_python_read_not_string(self): """Test that read() returning an invalid type is handled""" class MyFileLike(object): def read(self, numbytes): return 42 fh = MyFileLike() f = _format.ihm_file_new_from_python(fh) reader = _format.ihm_reader_new(f) self.assertRaises(ValueError, _format.ihm_read_file, reader) _format.ihm_reader_free(reader)
def test_python_read_too_long(self): """Test that read() returning too many bytes is handled""" class MyFileLike(object): def read(self, numbytes): return " " * (numbytes * 4 + 10) fh = MyFileLike() f = _format.ihm_file_new_from_python(fh) reader = _format.ihm_reader_new(f) self.assertRaises(ValueError, _format.ihm_read_file, reader) _format.ihm_reader_free(reader)
def test_python_read_exception(self): """Test exception in read callback is handled""" class MyError(Exception): pass class MyFileLike(object): def read(self, numbytes): raise MyError("some error") fh = MyFileLike() f = _format.ihm_file_new_from_python(fh) reader = _format.ihm_reader_new(f) self.assertRaises(MyError, _format.ihm_read_file, reader) _format.ihm_reader_free(reader)
def test_multiple_set_unknown_handler(self): """Test setting unknown handler multiple times""" class Handler(object): def __call__(self): pass uc = Handler() fh = StringIO() c_file = _format.ihm_file_new_from_python(fh) reader = _format.ihm_reader_new(c_file) # Handler must be a callable object self.assertRaises(ValueError, _format.add_unknown_category_handler, reader, None) self.assertRaises(ValueError, _format.add_unknown_keyword_handler, reader, None) _format.add_unknown_category_handler(reader, uc) _format.add_unknown_category_handler(reader, uc) _format.add_unknown_keyword_handler(reader, uc) _format.add_unknown_keyword_handler(reader, uc) _format.ihm_reader_remove_all_categories(reader) _format.ihm_reader_remove_all_categories(reader) _format.ihm_reader_free(reader) fh.close()