Skip to content
This repository has been archived by the owner on Feb 27, 2023. It is now read-only.

Commit

Permalink
#13 Create release note version
Browse files Browse the repository at this point in the history
Signed-off-by: Uilian Ries <uilianries@gmail.com>
  • Loading branch information
uilianries committed Jul 20, 2019
1 parent 34a3a1f commit f62c30d
Show file tree
Hide file tree
Showing 2 changed files with 114 additions and 8 deletions.
76 changes: 69 additions & 7 deletions bintray/bintray.py
Original file line number Diff line number Diff line change
Expand Up @@ -2304,14 +2304,76 @@ def delete_package_release_notes(self, subject, repo, package):
url = "{}/packages/{}/{}/{}/release_notes".format(Bintray.BINTRAY_URL, subject, repo,
package)
response = self._requester.delete(url)
self._logger.info("Set successfully")
self._logger.info("Delete successfully")
return response

def get_version_release_notes(self, subject, repo, package, version):
""" Get release notes for a specific version by subject
Security: Authenticated user with 'read' permission for private repositories, or version
read entitlement.
:param subject: repository owner
:param repo: repository name
:param package: package name
:param version: package version
:return: release notes
"""
url = "{}/packages/{}/{}/{}/versions/{}/release_notes".format(Bintray.BINTRAY_URL, subject,
repo, package, version)
response = self._requester.get(url)
self._logger.info("Get successfully")
return response

def create_version_release_notes_github(self, subject, repo, package, version, github_repo,
github_release_notes_file):
""" Create release notes for a specific version by subject. Release notes "content"
will be copied from the provided GitHub release notes if using "github".
Security: Authenticated user with 'publish' permission, or version read/write
entitlement.
:param subject: repository owner
:param repo: repository name
:param package: package name
:param version: package version
:param github_repo: GitHub repository name
:param github_release_notes_file: GitHub release notes file path
:return: request response
"""
url = "{}/packages/{}/{}/{}/versions/{}/release_notes".format(Bintray.BINTRAY_URL, subject,
repo, package, version)
json_data = {"github": {
"github_repo": github_repo,
"github_release_notes_file": github_release_notes_file
}}
response = self._requester.post(url, json=json_data)
self._logger.info("Post successfully")
return response

def get_version_release_notes(self):
pass
def create_version_release_notes_bintray(self, subject, repo, package, version, syntax,
content):
""" Create release notes for a package by subject.
Release notes "content" has to be passed to the command
def create_version_release_notes(self):
pass
Security: Authenticated user with 'publish' permission, or package read/write
entitlement.
def get_version_release_notes(self):
pass
:param subject: repository owner
:param repo: repository name
:param package: package name
:param version: package version
:param syntax: content syntax
:param content: release notes content
:return: request response
"""
url = "{}/packages/{}/{}/{}/versions/{}/release_notes".format(Bintray.BINTRAY_URL, subject,
repo, package, version)
json_data = {"bintray": {
"syntax": syntax,
"content": content
}}
response = self._requester.post(url, json=json_data)
self._logger.info("Post successfully")
return response
46 changes: 45 additions & 1 deletion tests/test_release_notes.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ def create_release_notes():
"markdown", "test")


@pytest.fixture()
def create_version_release_notes():
bintray = Bintray()
return bintray.create_version_release_notes_bintray("uilianries", "generic", "statistics",
"test", "markdown", "test")


def test_get_package_release_notes(create_release_notes):
bintray = Bintray()
response = bintray.get_package_release_notes("uilianries", "generic", "statistics")
Expand Down Expand Up @@ -41,7 +48,44 @@ def test_create_package_release_notes_bintray(create_release_notes):
'statusCode': 200} == create_release_notes


def test_delete_package_release_notes(create_release_notes):
def test_delete_package_release_notes(create_version_release_notes):
bintray = Bintray()
response = bintray.delete_package_release_notes("uilianries", "generic", "statistics")
assert {'error': False, 'message': 'success', 'statusCode': 200} == response


def test_get_version_release_notes(create_version_release_notes):
bintray = Bintray()
response = bintray.get_version_release_notes("uilianries", "generic", "statistics", "test")
assert {'bintray': {'content': 'test', 'syntax': 'MARKDOWN'},
'error': False,
'owner': 'uilianries',
'package': 'statistics',
'repo': 'generic',
'statusCode': 200,
'version': 'test'} == response


def test_create_version_release_notes_bintray(create_version_release_notes):
assert {'bintray': {'content': 'test', 'syntax': 'MARKDOWN'},
'error': False,
'owner': 'uilianries',
'package': 'statistics',
'repo': 'generic',
'statusCode': 200,
'version': 'test'} == create_version_release_notes


def test_create_version_release_notes_github():
bintray = Bintray()
error_message = ""
try:
bintray.create_version_release_notes_github("uilianries", "generic", "statistics",
"test", "uilanries/bintray-python",
"0.7.0/README.md")
except Exception as error:
error_message = str(error)

assert "Could not POST (400): Failed to set release notes files for subject 'uilianries' repo "\
"'generic' pkg 'statistics and version 'test', Please check your github details and " \
"make sure the package of this version has the github repo configured" == error_message

0 comments on commit f62c30d

Please sign in to comment.