diff --git a/atst/utils/form_cache.py b/atst/utils/form_cache.py index 583ca611..3ce4f17a 100644 --- a/atst/utils/form_cache.py +++ b/atst/utils/form_cache.py @@ -1,5 +1,6 @@ from hashlib import sha256 import json +from werkzeug.datastructures import ImmutableMultiDict DEFAULT_CACHE_NAME = "formcache" @@ -24,7 +25,8 @@ class FormCache(object): def read(self, formdata_key, key_prefix=DEFAULT_CACHE_NAME): data = self.redis.get(self._key(key_prefix, formdata_key)) - return json.loads(data) if data is not None else {} + dict_data = json.loads(data) if data is not None else {} + return ImmutableMultiDict(dict_data) @staticmethod def _key(prefix, hash_): diff --git a/tests/utils/test_form_cache.py b/tests/utils/test_form_cache.py index 17998ee7..c399acd1 100644 --- a/tests/utils/test_form_cache.py +++ b/tests/utils/test_form_cache.py @@ -1,5 +1,5 @@ import pytest -from werkzeug.datastructures import ImmutableDict +from werkzeug.datastructures import ImmutableMultiDict from atst.utils.form_cache import DEFAULT_CACHE_NAME, FormCache @@ -10,13 +10,13 @@ def form_cache(app): def test_cache_form_data(app, form_cache): - data = ImmutableDict({"kessel_run": "12 parsecs"}) + data = ImmutableMultiDict({"kessel_run": "12 parsecs"}) key = form_cache.write(data) assert app.redis.get("{}:{}".format(DEFAULT_CACHE_NAME, key)) def test_retrieve_form_data(form_cache): - data = ImmutableDict({"class": "corellian"}) + data = ImmutableMultiDict({"class": "corellian"}) key = form_cache.write(data) retrieved = form_cache.read(key) assert retrieved == data