@@ -169,6 +169,17 @@ def test_project_by_id(self):
169169 }
170170 }
171171 })
172+ release ["_embedded" ]["sw360:attachments" ].append ({
173+ "filename" : "clipython-1.3.0.docx" ,
174+ "sha1" : "f0d8f2ddd017bdeaecbaec72ff76a6c0a045ec66" ,
175+ "attachmentType" : "CLEARING_REPORT" ,
176+ "_links" : {
177+ "self" : {
178+ "href" : "https://my.server.com/resource/api/attachments/r002a003"
179+ }
180+ }
181+ })
182+
172183 responses .add (
173184 responses .GET ,
174185 url = self .MYURL + "resource/api/releases/r002" ,
@@ -182,21 +193,39 @@ def test_project_by_id(self):
182193 cx_comp = cdx_bom .components [0 ]
183194 self .assertEqual (cx_comp .purl , release ["externalIds" ]["package-url" ])
184195
185- ext_refs_src_url = [e for e in cx_comp .external_references if e .comment == CaPyCliBom .SOURCE_URL_COMMENT ]
186- self .assertEqual (len (ext_refs_src_url ), 1 )
187- self .assertEqual (ext_refs_src_url [0 ].url , release ["sourceCodeDownloadurl" ])
188- self .assertEqual (ext_refs_src_url [0 ].type , ExternalReferenceType .DISTRIBUTION )
189-
190- ext_refs_src_file = [e for e in cx_comp .external_references if e .comment == CaPyCliBom .SOURCE_FILE_COMMENT ]
191- self .assertEqual (len (ext_refs_src_file ), 2 )
192- self .assertEqual (ext_refs_src_file [0 ].url , release ["_embedded" ]["sw360:attachments" ][0 ]["filename" ])
193- self .assertEqual (ext_refs_src_file [0 ].type , ExternalReferenceType .DISTRIBUTION )
194- self .assertEqual (ext_refs_src_file [0 ].hashes [0 ].alg , "SHA-1" )
195- self .assertEqual (ext_refs_src_file [0 ].hashes [0 ].content , release ["_embedded" ]["sw360:attachments" ][0 ]["sha1" ])
196-
197- ext_refs_vcs = [e for e in cx_comp .external_references if e .type == ExternalReferenceType .VCS ]
198- self .assertEqual (len (ext_refs_vcs ), 1 )
199- self .assertEqual (ext_refs_vcs [0 ].url , release ["repository" ]["url" ])
196+ ext_refs = [e for e in cx_comp .external_references if e .comment == CaPyCliBom .SOURCE_URL_COMMENT ]
197+ self .assertEqual (len (ext_refs ), 1 )
198+ self .assertEqual (ext_refs [0 ].url , release ["sourceCodeDownloadurl" ])
199+ self .assertEqual (ext_refs [0 ].type , ExternalReferenceType .DISTRIBUTION )
200+
201+ ext_refs = [e for e in cx_comp .external_references if e .comment == CaPyCliBom .SOURCE_FILE_COMMENT ]
202+ self .assertEqual (len (ext_refs ), 2 )
203+ self .assertEqual (ext_refs [0 ].url , release ["_embedded" ]["sw360:attachments" ][0 ]["filename" ])
204+ self .assertEqual (ext_refs [0 ].type , ExternalReferenceType .DISTRIBUTION )
205+ self .assertEqual (ext_refs [0 ].hashes [0 ].alg , "SHA-1" )
206+ self .assertEqual (ext_refs [0 ].hashes [0 ].content , release ["_embedded" ]["sw360:attachments" ][0 ]["sha1" ])
207+
208+ ext_refs = [e for e in cx_comp .external_references
209+ if e .comment and e .comment .startswith (CaPyCliBom .CLI_FILE_COMMENT )]
210+ self .assertEqual (len (ext_refs ), 1 )
211+ self .assertEqual (ext_refs [0 ].url , release ["_embedded" ]["sw360:attachments" ][1 ]["filename" ])
212+ self .assertEqual (ext_refs [0 ].type , ExternalReferenceType .OTHER )
213+ self .assertEqual (ext_refs [0 ].comment , CaPyCliBom .CLI_FILE_COMMENT + ", sw360Id: r002a002" )
214+ self .assertEqual (ext_refs [0 ].hashes [0 ].alg , "SHA-1" )
215+ self .assertEqual (ext_refs [0 ].hashes [0 ].content , release ["_embedded" ]["sw360:attachments" ][1 ]["sha1" ])
216+
217+ ext_refs = [e for e in cx_comp .external_references
218+ if e .comment and e .comment .startswith (CaPyCliBom .CRT_FILE_COMMENT )]
219+ self .assertEqual (len (ext_refs ), 1 )
220+ self .assertEqual (ext_refs [0 ].url , release ["_embedded" ]["sw360:attachments" ][3 ]["filename" ])
221+ self .assertEqual (ext_refs [0 ].comment , CaPyCliBom .CRT_FILE_COMMENT + ", sw360Id: r002a003" )
222+ self .assertEqual (ext_refs [0 ].type , ExternalReferenceType .OTHER )
223+ self .assertEqual (ext_refs [0 ].hashes [0 ].alg , "SHA-1" )
224+ self .assertEqual (ext_refs [0 ].hashes [0 ].content , release ["_embedded" ]["sw360:attachments" ][3 ]["sha1" ])
225+
226+ ext_refs = [e for e in cx_comp .external_references if e .type == ExternalReferenceType .VCS ]
227+ self .assertEqual (len (ext_refs ), 1 )
228+ self .assertEqual (ext_refs [0 ].url , release ["repository" ]["url" ])
200229
201230 self .assertEqual (cdx_bom .metadata .component .name , project ["name" ])
202231 self .assertEqual (cdx_bom .metadata .component .version , project ["version" ])
0 commit comments