diff --git a/apptools/persistence/state_pickler.py b/apptools/persistence/state_pickler.py index ce48de921..aed0bdcb2 100644 --- a/apptools/persistence/state_pickler.py +++ b/apptools/persistence/state_pickler.py @@ -918,18 +918,14 @@ def _do_dict(self, obj, state): def _get_file_read(f): if hasattr(f, 'read'): return f - elif isinstance(f, str): - return open(f, 'rb') else: - raise TypeError('Given object is neither a file or String') + return open(f, 'rb') def _get_file_write(f): if hasattr(f, 'write'): return f - elif isinstance(f, str): - return open(f, 'wb') else: - raise TypeError('Given object is neither a file or String') + return open(f, 'wb') ###################################################################### diff --git a/apptools/persistence/tests/test_state_pickler.py b/apptools/persistence/tests/test_state_pickler.py index 98922a530..70bf42573 100644 --- a/apptools/persistence/tests/test_state_pickler.py +++ b/apptools/persistence/tests/test_state_pickler.py @@ -8,6 +8,8 @@ import base64 import unittest import math +import os +import tempfile import numpy @@ -450,6 +452,17 @@ def __getstate__(self): s = state_pickler.get_state(b) self.assertEqual(s.a, 'dict') + def test_dump_to_file_str(self): + """Test if dump can take a str as file""" + obj = A() + + filepath = os.path.join(tempfile.gettempdir(), "tmp.file") + + try: + state_pickler.dump(obj, filepath) + finally: + os.remove(filepath) + if __name__ == "__main__": unittest.main()