11import os
22import json
33import datetime
4- from validator .utils import Result as Result
4+ from rocrateValidator .utils import Result as Result
55import zipfile
66import rocrate .utils as utils
77import rocrate .rocrate as rocrate
88from datetime import datetime
9+ import rocrateValidator .workflow_extension as we
910import pytest
10- # from utils import Result as Result
11-
1211
1312correct_value = {
1413 "contactPoint" :"ContactPoint" ,
@@ -337,10 +336,10 @@ def url_check(item, entityProp, metadata, result, error_message):
337336 if item == "citation" :
338337 result [entityProp ] = [False , error_message ["IDError" ].format (entityProp )]
339338
340- def get_entity (item , entity , metadata , result , error_message , further_check = False , urlVal_required = False ):
339+ def get_entity (item , entity , metadata , result , error_message , is_multipleEntity = False , urlVal_required = False ):
341340
342341 """
343- The Boolean further check is to find the further referencing data entity.
342+ The Boolean is_multipleEntity is to find the further referencing data entity.
344343 The urlVal_required is for those data entity requiring the value of specific property is url.
345344 At this stage, there are only three differnet cases.
346345 For more generic, more specific situation should be specified.
@@ -349,14 +348,14 @@ def get_entity(item, entity, metadata, result, error_message, further_check = Fa
349348 entity_property = utils .get_norm_value (entity , item )
350349 if entity_property != []:
351350 for entityProp in entity_property :
352- if urlVal_required and not further_check :
351+ if urlVal_required and not is_multipleEntity :
353352 url_check (item , entityProp , metadata , result , error_message )
354- elif further_check :
355- upd_result (item , entityProp , metadata , result , error_message , further_check = True )
353+ elif is_multipleEntity :
354+ upd_result (item , entityProp , metadata , result , error_message , is_multipleEntity = True )
356355 else :
357356 upd_result (item , entityProp , metadata , result , error_message )
358357
359- def upd_result (item , entity_property , metadata , result , error_message , further_check = False , urlVal_required = False ):
358+ def upd_result (item , entity_property , metadata , result , error_message , is_multipleEntity = False , urlVal_required = False ):
360359 try :
361360 referencing_entity = metadata [entity_property ]
362361 type = utils .get_norm_value (referencing_entity , "@type" )
@@ -367,7 +366,7 @@ def upd_result(item, entity_property, metadata, result, error_message, further_c
367366 else :
368367 result [entity_property ] = [False , error_message ["TypeError" ].format (entity_property )]
369368
370- if further_check :
369+ if is_multipleEntity :
371370 if item == "author" or item == "publisher" :
372371 get_entity ("contactPoint" , referencing_entity , metadata , result , error_message )
373372 else :
@@ -734,7 +733,7 @@ def scripts_and_workflow_check(tar_file, extension):
734733 """
735734
736735 NAME = "Scripts and workflow check"
737- wkfext_path = '/Users/xuanqili/Desktop/ro-crate-validator-py/src/workflow_extension.txt'
736+ # wkfext_path = '/Users/xuanqili/Desktop/ro-crate-validator-py/src/workflow_extension.txt'
738737
739738 error_message = {
740739 "WorkflowError" :"Scripts and Workflow is Wrong" ,
@@ -752,8 +751,9 @@ def scripts_and_workflow_check(tar_file, extension):
752751 ### check if recognised workflow file meets the requirments
753752 for entity in metadata .values ():
754753 id_ = utils .get_norm_value (entity , "@id" )[0 ]
755- with open (wkfext_path , "r" ) as file :
756- extension_set = file .read ().splitlines ()
754+ extension_set = list (we .get_workflow_extension ())
755+ # with open (wkfext_path, "r") as file:
756+ # extension_set = file.read().splitlines()
757757 recognisedWkf_upd (extension_set , entity , workflow_result , id_ , error_message )
758758
759759 ### check unrecognised workflow file with ComputaionalWorkflow in its @type
0 commit comments