From ba6ab6f746fc453cf1e41d843fa2fe13f3665e0f Mon Sep 17 00:00:00 2001 From: Chris Meyers Date: Fri, 18 Nov 2016 11:37:06 -0500 Subject: [PATCH] forgot to add new fixtures for jsonbfield fact --- .../tests/functional/models/fact/conftest.py | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 awx/main/tests/functional/models/fact/conftest.py diff --git a/awx/main/tests/functional/models/fact/conftest.py b/awx/main/tests/functional/models/fact/conftest.py new file mode 100644 index 0000000000..9380d63b90 --- /dev/null +++ b/awx/main/tests/functional/models/fact/conftest.py @@ -0,0 +1,26 @@ + +import pytest +import six + +from jsonbfield.fields import JSONField +from django.core.serializers.json import DjangoJSONEncoder + +def dumps(value): + return DjangoJSONEncoder().encode(value) + +# Taken from https://github.com/django-extensions/django-extensions/blob/54fe88df801d289882a79824be92d823ab7be33e/django_extensions/db/fields/json.py +def get_db_prep_save(self, value, connection, **kwargs): + """Convert our JSON object to a string before we save""" + if value is None and self.null: + return None + # default values come in as strings; only non-strings should be + # run through `dumps` + if not isinstance(value, six.string_types): + value = dumps(value) + + return value + +@pytest.fixture +def monkeypatch_jsonbfield_get_db_prep_save(mocker): + JSONField.get_db_prep_save = get_db_prep_save +