Skip to content

Commit eb79367

Browse files
committed
added test if preference is pickleable
1 parent 7310963 commit eb79367

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

dynamic_preferences/serializers.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,7 @@ class FakeInstance(object):
285285
def save(self):
286286
return
287287

288+
288289
class FakeField(object):
289290
"""
290291
FieldFile needs a field object to generate a filename, persist
@@ -295,9 +296,6 @@ class FakeField(object):
295296
attname = "noop"
296297
max_length = 10000
297298

298-
def generate_filename(field, instance, name):
299-
return os.path.join(self.preference.get_upload_path(), f.name)
300-
301299

302300
class PreferenceFieldFile(FieldFile):
303301
"""
@@ -483,5 +481,5 @@ def to_python(cls, value, **kwargs):
483481
while "" in ret:
484482
pos = ret.index("")
485483
val = ret[pos - 1] + cls.separator + ret[pos + 1]
486-
ret = ret[0 : pos - 1] + [val] + ret[pos + 2 :]
484+
ret = ret[0: pos - 1] + [val] + ret[pos + 2:]
487485
return ret

tests/test_types.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import os
22
import decimal
3+
import pickle
4+
35
import pytest
46

57
from datetime import date, timedelta, datetime, time
@@ -239,6 +241,19 @@ def test_file_preference_api_repr_returns_path(db):
239241
assert p.api_repr(f) == f.url
240242

241243

244+
def test_file_preference_if_pickleable(db):
245+
manager = global_preferences_registry.manager()
246+
f = SimpleUploadedFile(
247+
"test_file_24485a80-8db9-4191-ae49-da7fe2013794.txt",
248+
"hello world".encode("utf-8"),
249+
)
250+
try:
251+
manager["blog__logo"] = f
252+
pickle.dumps(manager["blog__logo"])
253+
except Exception:
254+
pytest.fail("FilePreference not pickleable")
255+
256+
242257
def test_choice_preference(fake_user):
243258
fake_user.preferences["user__favorite_vegetable"] = "C"
244259
assert fake_user.preferences["user__favorite_vegetable"] == "C"

0 commit comments

Comments
 (0)