Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions apptools/persistence/state_pickler.py
Original file line number Diff line number Diff line change
Expand Up @@ -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')


######################################################################
Expand Down
13 changes: 13 additions & 0 deletions apptools/persistence/tests/test_state_pickler.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
import base64
import unittest
import math
import os
import tempfile

import numpy

Expand Down Expand Up @@ -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()