diff --git a/atst/app.py b/atst/app.py index 3194a4fe..31eb6f85 100644 --- a/atst/app.py +++ b/atst/app.py @@ -8,8 +8,6 @@ from flask_session import Session import redis from unipath import Path from flask_wtf.csrf import CSRFProtect -import json -from enum import Enum from atst.database import db from atst.assets import environment as assets_environment @@ -31,7 +29,7 @@ from atst.models.permissions import Permissions from atst.queue import celery, update_celery from atst.utils import mailer from atst.utils.form_cache import FormCache -from atst.utils.json import CustomJSONEncoder +from atst.utils.json import CustomJSONEncoder, sqlalchemy_dumps from atst.utils.notification_sender import NotificationSender from atst.utils.session_limiter import SessionLimiter @@ -150,15 +148,6 @@ def set_default_headers(app): # pragma: no cover def map_config(config): - def sqlalchemy_dumps(dct): - def _default(obj): - if isinstance(obj, Enum): - return obj.name - else: - raise TypeError() - - return json.dumps(dct, default=_default) - return { **config["default"], "ENV": config["default"]["ENVIRONMENT"], diff --git a/atst/utils/json.py b/atst/utils/json.py index 8e2a3217..9e34e10e 100644 --- a/atst/utils/json.py +++ b/atst/utils/json.py @@ -1,6 +1,9 @@ from flask.json import JSONEncoder +import json from werkzeug.datastructures import FileStorage from datetime import date +from enum import Enum + from atst.models.attachment import Attachment @@ -13,3 +16,13 @@ class CustomJSONEncoder(JSONEncoder): elif isinstance(obj, FileStorage): return obj.filename return JSONEncoder.default(self, obj) + + +def sqlalchemy_dumps(dct): + def _default(obj): + if isinstance(obj, Enum): + return obj.name + else: + raise TypeError() + + return json.dumps(dct, default=_default)