diff --git a/github3/repos/release.py b/github3/repos/release.py index 8b4f9424f..10e0b774d 100644 --- a/github3/repos/release.py +++ b/github3/repos/release.py @@ -22,6 +22,8 @@ class Release(GitHubCore): def __init__(self, release, session=None): super(Release, self).__init__(release, session) self._api = release.get('url') + #: List of :class:`Asset ` objects for this release + self.assets = [Asset(i, self) for i in release.get('assets', [])] #: URL for uploaded assets self.assets_url = release.get('assets_url') #: Body of the release (the description) diff --git a/tests/unit/test_repos_release.py b/tests/unit/test_repos_release.py index c9d12f6db..d0cd41305 100644 --- a/tests/unit/test_repos_release.py +++ b/tests/unit/test_repos_release.py @@ -15,6 +15,18 @@ class TestRelease(UnitHelper): example_data = { "url": releases_url("/1"), "html_url": "https://github.com/octocat/Hello-World/releases/v1.0.0", + "assets": [{ + "url": releases_url("/assets/1"), + "id": 1, + "name": "example.zip", + "label": "short description", + "state": "uploaded", + "content_type": "application/zip", + "size": 1024, + "download_count": 42, + "created_at": "2013-02-27T19:35:32Z", + "updated_at": "2013-02-27T19:35:32Z" + }], "assets_url": releases_url("/1/assets"), "upload_url": releases_url("/1/assets{?name}"), "id": 1, @@ -29,6 +41,10 @@ class TestRelease(UnitHelper): } # Attribute tests + def test_assets(self): + assert self.instance.assets is not None + assert isinstance(self.instance.assets[0], Asset) + def test_has_upload_urlt(self): assert self.instance.upload_urlt is not None