summaryrefslogtreecommitdiff
path: root/validate.py
diff options
context:
space:
mode:
authorMilosz Wasilewski <milosz.wasilewski@linaro.org>2017-10-20 14:04:52 +0100
committerMilosz Wasilewski <milosz.wasilewski@linaro.org>2017-10-22 16:26:02 +0100
commitc69b40979ee7d84dc2b7e061313ac07d49e95e62 (patch)
treea98a35d43798f348fe9cc211168638a5b8a92d16 /validate.py
parent920fca1f08e39e014414a3c8d105c0f3ab49b3a3 (diff)
validate.py: fix the case when file were deleted
Change-Id: I718ebedffffd57383d81131732ff7df764f0752e Signed-off-by: Milosz Wasilewski <milosz.wasilewski@linaro.org>
Diffstat (limited to 'validate.py')
-rwxr-xr-xvalidate.py100
1 files changed, 56 insertions, 44 deletions
diff --git a/validate.py b/validate.py
index 54edb75..3f127c4 100755
--- a/validate.py
+++ b/validate.py
@@ -64,57 +64,69 @@ def pep8_check(filepath, args):
def metadata_check(filepath, args):
if filepath.lower().endswith("yaml"):
- with open(filepath, "r") as f:
- result_message_list = []
- y = yaml.load(f.read())
- if 'metadata' not in y.keys():
- result_message_list.append("* METADATA [FAILED]: " + filepath)
- result_message_list.append("\tmetadata section missing")
- publish_result(result_message_list, args)
- exit(1)
- metadata_dict = y['metadata']
- mandatory_keys = set([
- 'name',
- 'format',
- 'description',
- 'maintainer',
- 'os',
- 'devices'])
- if not mandatory_keys.issubset(set(metadata_dict.keys())):
+ filecontent = None
+ try:
+ with open(filepath, "r") as f:
+ filecontent = f.read()
+ except FileNotFoundError:
+ publish_result(["* METADATA [PASSED]: " + filepath + " - deleted"], args)
+ return 0
+ result_message_list = []
+ y = yaml.load(filecontent)
+ if 'metadata' not in y.keys():
+ result_message_list.append("* METADATA [FAILED]: " + filepath)
+ result_message_list.append("\tmetadata section missing")
+ publish_result(result_message_list, args)
+ exit(1)
+ metadata_dict = y['metadata']
+ mandatory_keys = set([
+ 'name',
+ 'format',
+ 'description',
+ 'maintainer',
+ 'os',
+ 'devices'])
+ if not mandatory_keys.issubset(set(metadata_dict.keys())):
+ result_message_list.append("* METADATA [FAILED]: " + filepath)
+ result_message_list.append("\tmandatory keys missing: %s" %
+ mandatory_keys.difference(set(metadata_dict.keys())))
+ result_message_list.append("\tactual keys present: %s" %
+ metadata_dict.keys())
+ publish_result(result_message_list, args)
+ return 1
+ for key in mandatory_keys:
+ if len(metadata_dict[key]) == 0:
result_message_list.append("* METADATA [FAILED]: " + filepath)
- result_message_list.append("\tmandatory keys missing: %s" %
- mandatory_keys.difference(set(metadata_dict.keys())))
- result_message_list.append("\tactual keys present: %s" %
- metadata_dict.keys())
+ result_message_list.append("\t%s has no content" % key)
publish_result(result_message_list, args)
return 1
- for key in mandatory_keys:
- if len(metadata_dict[key]) == 0:
- result_message_list.append("* METADATA [FAILED]: " + filepath)
- result_message_list.append("\t%s has no content" % key)
- publish_result(result_message_list, args)
- return 1
- result_message_list.append("* METADATA [PASSED]: " + filepath)
- publish_result(result_message_list, args)
+ result_message_list.append("* METADATA [PASSED]: " + filepath)
+ publish_result(result_message_list, args)
return 0
def validate_yaml(filename, args):
- with open(filename, "r") as f:
- try:
- y = yaml.load(f.read())
- message = "* YAMLVALID: [PASSED]: " + filename
- print_stderr(message)
- except:
- message = "* YAMLVALID: [FAILED]: " + filename
- result_message_list = []
- result_message_list.append(message)
- result_message_list.append("\n\n")
- exc_type, exc_value, exc_traceback = sys.exc_info()
- for line in traceback.format_exception_only(exc_type, exc_value):
- result_message_list.append(' ' + line)
- publish_result(result_message_list, args)
- return 1
+ filecontent = None
+ try:
+ with open(filename, "r") as f:
+ filecontent = f.read()
+ except FileNotFoundError:
+ publish_result(["* YAMLVALID [PASSED]: " + filename + " - deleted"], args)
+ return 0
+ try:
+ y = yaml.load(filecontent)
+ message = "* YAMLVALID: [PASSED]: " + filename
+ print_stderr(message)
+ except:
+ message = "* YAMLVALID: [FAILED]: " + filename
+ result_message_list = []
+ result_message_list.append(message)
+ result_message_list.append("\n\n")
+ exc_type, exc_value, exc_traceback = sys.exc_info()
+ for line in traceback.format_exception_only(exc_type, exc_value):
+ result_message_list.append(' ' + line)
+ publish_result(result_message_list, args)
+ return 1
return 0