Check annotations field before parsing

Add test case for annotations
This commit is contained in:
Bharatvaj H 2021-08-21 06:24:12 +05:30 committed by Tomas Babej
parent 48bf64a501
commit 05904549a0
2 changed files with 11 additions and 0 deletions

View file

@ -793,6 +793,11 @@ void Task::parseJSON (const json::object* root_obj)
{
std::map <std::string, std::string> annos;
// Fail if 'annotations' is not an array
if (i.second->type() != json::j_array) {
throw format ("Annotations is malformed: {1}", i.second->dump ());
}
auto atts = (json::array*)i.second;
for (auto& annotations : atts->_data)
{

View file

@ -292,6 +292,12 @@ class TestImportValidate(TestCase):
code, out, err = self.t.runError("import", input=j)
self.assertIn("The status 'foo' is not valid.", err)
def test_import_malformed_annotation(self):
"""Verify invalid 'annnotations' is caught"""
j = '{"description": "bad", "annotations": "bad"}'
code, out, err = self.t.runError("import", input=j)
self.assertIn('Annotations is malformed: "bad"', err)
class TestImportWithoutISO(TestCase):
def setUp(self):