Render default values that are not None

Allow rendering 0, False and other default values that would be
considered as false by python.

Change-Id: I0108b4430e831a7aa14bfd8d6deb4accb759d578
This commit is contained in:
Enol Fernandez 2017-07-24 11:51:10 +01:00 committed by Alvaro Lopez Garcia
parent 8500d14450
commit f936ed3c78
2 changed files with 30 additions and 2 deletions

View File

@ -70,7 +70,7 @@ class AttributeRenderer(JsonRenderer):
}
if self.obj.description:
r["description"] = self.obj.description
if self.obj.default:
if self.obj.default is not None:
r["default"] = self.obj.default
# TODO(enolfc): missing pattern
return {self.obj.name: r}

View File

@ -67,7 +67,7 @@ class TestOCCIJsonRendering(base.BaseRendererTest):
"required": attr.required,
"type": "string",
}
if attr.default:
if attr.default is not None:
expected["default"] = attr.default
if attr.description:
expected["description"] = attr.description
@ -206,6 +206,20 @@ class TestOCCIJsonRendering(base.BaseRendererTest):
}
self.assertEqual(expected, json.loads(observed))
def test_number_attr_default_0(self):
attr = attribute.MutableAttribute(
"org.example", default=0,
attr_type=attribute.AttributeType.number_type)
r = self.renderer.get_renderer(attr)
observed = r.render()
expected = {
"org.example": {
"type": "number", "required": False, "mutable": True,
"default": 0,
}
}
self.assertEqual(expected, json.loads(observed))
def test_boolean_attr(self):
attr = attribute.MutableAttribute(
"org.example", attr_type=attribute.AttributeType.boolean_type)
@ -217,3 +231,17 @@ class TestOCCIJsonRendering(base.BaseRendererTest):
}
}
self.assertEqual(expected, json.loads(observed))
def test_boolean_attr_default_false(self):
attr = attribute.MutableAttribute(
"org.example", default=False,
attr_type=attribute.AttributeType.boolean_type)
r = self.renderer.get_renderer(attr)
observed = r.render()
expected = {
"org.example": {
"type": "boolean", "required": False, "mutable": True,
"default": False,
}
}
self.assertEqual(expected, json.loads(observed))