Skip to content

Commit 7daf274

Browse files
committed
feat: add get_recent_releases
1 parent 6e788a5 commit 7daf274

2 files changed

Lines changed: 61 additions & 0 deletions

File tree

sw360/releases.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,4 +298,7 @@ def get_recent_releases(self) -> Optional[Dict[str, Any]]:
298298
"""
299299
url = self.url + "resource/api/releases/recentReleases"
300300
resp = self.api_get(url)
301+
if resp and ("_embedded" in resp) and ("sw360:releases" in resp["_embedded"]):
302+
return resp["_embedded"]["sw360:releases"]
303+
301304
return resp

tests/test_sw360_releases.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -616,6 +616,64 @@ def test_unlink_packages_from_release_no_id(self) -> None:
616616

617617
self.assertEqual("No release id provided!", context.exception.message)
618618

619+
@responses.activate
620+
def test_get_recent_releases(self) -> None:
621+
lib = SW360(self.MYURL, self.MYTOKEN, False)
622+
self._add_login_response()
623+
actual = lib.login_api()
624+
self.assertTrue(actual)
625+
626+
responses.add(
627+
method=responses.GET,
628+
url=self.MYURL + "resource/api/releases/recentReleases",
629+
body='''
630+
{
631+
"_embedded": {
632+
"sw360:releases": [
633+
{
634+
"id": "f23200c333564eb98bbd5823937d5fc8",
635+
"name": "MarkupSafe",
636+
"version": "3.0.2",
637+
"_links": {
638+
"self": {
639+
"href": "https://my.server.com/resource/api/releases/f2"
640+
}
641+
}
642+
},
643+
{
644+
"id": "d39333c659d64ee3aa30d48cc0bcd930",
645+
"name": "HTTPCore",
646+
"version": "1.0.6",
647+
"_links": {
648+
"self": {
649+
"href": "https://my.server.com/resource/api/releases/d3"
650+
}
651+
}
652+
}
653+
]
654+
},
655+
"_links": {
656+
"curies": [
657+
{
658+
"href": "https://my.server.com/resource/docs/{rel}.html",
659+
"name": "sw360",
660+
"templated": true
661+
}
662+
]
663+
}
664+
}
665+
''',
666+
status=200,
667+
content_type="application/json",
668+
adding_headers={"Authorization": "Token " + self.MYTOKEN},
669+
)
670+
671+
releases = lib.get_recent_releases()
672+
self.assertIsNotNone(releases)
673+
self.assertEqual(2, len(releases))
674+
self.assertEqual("MarkupSafe", releases[0]["name"])
675+
self.assertEqual("3.0.2", releases[0]["version"])
676+
619677

620678
if __name__ == "__main__":
621679
unittest.main()

0 commit comments

Comments
 (0)