-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/batch operation #20
Changes from 6 commits
b4bcaf2
6ffef46
505bf18
ccf69f2
3d31199
7c5b013
ca9c971
c916f79
ce79109
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
# -*- coding: utf-8 -*- | ||
"""Reserver modules.""" | ||
from .reserver_param import RESERVER_VERSION | ||
from .reserver_obj import Uploader | ||
from .reserver_obj import PyPIUploader | ||
|
||
__version__ = RESERVER_VERSION |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,30 +7,42 @@ | |
from subprocess import check_output, CalledProcessError | ||
from re import sub | ||
|
||
class Uploader: | ||
class PyPIUploader: | ||
""" | ||
The Reserver Uploader class reserves a package name by uploading a template repo to pypi account. | ||
The Reserver PyPIUploader class reserves a package name by uploading a template repo to pypi account. | ||
|
||
>>> uploader = Uploader(API_TOKEN, is_test_pypi_account = True) # API_TOKEN refers to pypi(or test pypi)'s account api. | ||
>>> uploader = PyPIUploader(API_TOKEN, is_test_pypi_account = True) # API_TOKEN refers to pypi(or test pypi)'s account api. | ||
>>> uploader.upload_to_pypi(PACKAGE_NAME) # uploads package to the given test pypi account. | ||
""" | ||
|
||
def __init__(self, api_token, test_pypi=False): | ||
""" | ||
Initialize the Reserver Uploader instance. | ||
Initialize the Reserver PyPIUploader instance. | ||
|
||
:param api_token: pypi account's api token | ||
:type api_token: str | ||
:param test_pypi: indicates the given api_token is for a test.pypi account or not. | ||
:type test_pypi: bool | ||
:return: an instance of the Reserver Uploader | ||
:return: an instance of the Reserver PyPIUploader | ||
""" | ||
self.username = "__token__" | ||
self.password = api_token | ||
self.test_pypi = test_pypi | ||
|
||
|
||
def upload_to_pypi(self, package_name): | ||
|
||
def batch_upload(self, *names): | ||
""" | ||
Upload batch of package names to PyPI. | ||
|
||
:param names: packages' names | ||
:type names: vararg | ||
:return: None | ||
Comment on lines
+33
to
+39
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Update the doc-string |
||
""" | ||
for name in names: | ||
self.upload(name) | ||
|
||
|
||
def upload(self, package_name): | ||
""" | ||
Upload a template package to pypi or test_pypi. | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,27 @@ | ||
from reserver import Uploader | ||
from reserver import PyPIUploader | ||
from reserver.reserver_func import get_random_name | ||
import os | ||
test_pypi_token = os.environ.get("TEST_PYPI_PASSWORD") | ||
|
||
def test_package_exists(): | ||
# test reserved name | ||
uploader = Uploader(test_pypi_token, test_pypi= True) | ||
assert uploader.upload_to_pypi("numpy") == False | ||
uploader = PyPIUploader(test_pypi_token, test_pypi= True) | ||
assert uploader.upload("numpy") == False | ||
|
||
def test_batch_packages_names(): | ||
# test batch of package names | ||
uploader = PyPIUploader(test_pypi_token, test_pypi= True) | ||
uploader.batch_upload("numpy", "scikit-learn") | ||
assert True == True | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If you accept my comment on returning There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. again with the number of actual names reserved, I can handle associated test cases better and ok sure I will. |
||
def test_valid_package_invalid_credentials(): | ||
# test not reserved name -> wrong credentials | ||
wrong_pypi_token = "pypi-wrong-api-token" | ||
uploader = Uploader(wrong_pypi_token, test_pypi= True) | ||
assert uploader.upload_to_pypi(get_random_name()) == False | ||
uploader = PyPIUploader(wrong_pypi_token, test_pypi= True) | ||
assert uploader.upload(get_random_name()) == False | ||
|
||
def test_valid_package_valid_credentials(): | ||
# test not reserved name -> correct credentials | ||
# uploader = Uploader(test_pypi_token, test_pypi= True) | ||
# uploader = PyPIUploader(test_pypi_token, test_pypi= True) | ||
# uploader.upload_to_pypi(get_random_name()) | ||
assert True == True |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.