@@ -60,3 +60,25 @@ def test_pack_missing_cwlVersion(self):
60
60
packed = json .loads (print_pack (document_loader , processobj , uri , metadata ))
61
61
62
62
self .assertEqual ('v1.0' , packed ["cwlVersion" ])
63
+
64
+ def test_pack_idempotence_tool (self ):
65
+ """Test to ensure that pack produces exactly the same document for
66
+ an already packed document"""
67
+
68
+ # Testing single tool
69
+ self ._pack_idempotently ("tests/wf/null-expression1-tool.cwl" )
70
+
71
+ def _pack_idempotently (self , document ):
72
+ self .maxDiff = None
73
+ document_loader , workflowobj , uri = fetch_document (
74
+ get_data (document ))
75
+ document_loader , avsc_names , processobj , metadata , uri = validate_document (
76
+ document_loader , workflowobj , uri )
77
+ # generate pack output dict
78
+ packed = json .loads (print_pack (document_loader , processobj , uri , metadata ))
79
+
80
+ document_loader , workflowobj , uri2 = fetch_document (packed )
81
+ document_loader , avsc_names , processobj , metadata , uri2 = validate_document (
82
+ document_loader , workflowobj , uri )
83
+ double_packed = json .loads (print_pack (document_loader , processobj , uri , metadata ))
84
+ self .assertEqual (packed , double_packed )
0 commit comments