Merge "Handle requirements set to empty strings"
This commit is contained in:
commit
edfdd625fa
|
@ -29,6 +29,13 @@ class TestPluginsUtils(tests.TestCase):
|
||||||
result = plugins_utils.convert_requirements(request)
|
result = plugins_utils.convert_requirements(request)
|
||||||
self.assertEqual([], result)
|
self.assertEqual([], result)
|
||||||
|
|
||||||
|
def test_convert_requirements_empty_string(self):
|
||||||
|
# NOTE(priteau): Currently, empty requirements can be persisted in the
|
||||||
|
# database as empty strings, which are not valid JSON objects.
|
||||||
|
request = ''
|
||||||
|
result = plugins_utils.convert_requirements(request)
|
||||||
|
self.assertEqual([], result)
|
||||||
|
|
||||||
def test_convert_requirements_small(self):
|
def test_convert_requirements_small(self):
|
||||||
request = '["=", "$memory", "4096"]'
|
request = '["=", "$memory", "4096"]'
|
||||||
result = plugins_utils.convert_requirements(request)
|
result = plugins_utils.convert_requirements(request)
|
||||||
|
|
|
@ -28,6 +28,12 @@ def convert_requirements(requirements):
|
||||||
# TODO(frossigneux) Support the "or" operator
|
# TODO(frossigneux) Support the "or" operator
|
||||||
# Convert text to json
|
# Convert text to json
|
||||||
if isinstance(requirements, six.string_types):
|
if isinstance(requirements, six.string_types):
|
||||||
|
# Treat empty string as an empty JSON array, to avoid raising a
|
||||||
|
# ValueError exception while loading JSON
|
||||||
|
#
|
||||||
|
# TODO(priteau): Only persist valid JSON to the database
|
||||||
|
if requirements == '':
|
||||||
|
requirements = '[]'
|
||||||
try:
|
try:
|
||||||
requirements = jsonutils.loads(requirements)
|
requirements = jsonutils.loads(requirements)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
|
Loading…
Reference in New Issue