Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def main(args: List[str]) -> None:
parser = argparse.ArgumentParser(prog="twine upload")
settings.Settings.register_argparse_arguments(parser)
parser.add_argument(
"dists",
nargs="+",
metavar="dist",
help="The distribution files to upload to the repository "
"(package index). Usually dist/* . May additionally contain "
"a .asc file to include an existing signature with the "
"file upload.",
)
parsed_args = parser.parse_args(args)
upload_settings = settings.Settings.from_argparse(parsed_args)
# Call the upload function with the arguments from the command line
return upload(upload_settings, parsed_args.dists)
def main(args):
parser = argparse.ArgumentParser(prog="twine upload")
settings.Settings.register_argparse_arguments(parser)
parser.add_argument(
"dists",
nargs="+",
metavar="dist",
help="The distribution files to upload to the repository "
"(package index). Usually dist/* . May additionally contain "
"a .asc file to include an existing signature with the "
"file upload.",
)
args = parser.parse_args(args)
upload_settings = settings.Settings.from_argparse(args)
# Call the upload function with the arguments from the command line
return upload(upload_settings, args.dists)
def test_no_username_non_interactive_aborts(config):
with pytest.raises(exceptions.NonInteractive):
auth.Private(config, cred("user")).password
def test_non_existent_package(register_settings):
"""Test a non-existent package registration"""
stub_repository = pretend.stub()
register_settings.create_repository = lambda: stub_repository
package = "/foo/bar/baz.whl"
with pytest.raises(
exceptions.PackageNotFound,
match=f'"{package}" does not exist on the file system.',
):
register.register(register_settings, package)
"""
)
stub_response = pretend.stub(
is_redirect=True,
status_code=301,
headers={"location": "https://test.pypi.org/legacy/"},
)
stub_repository = pretend.stub(
upload=lambda package: stub_response, close=lambda: None
)
upload_settings.create_repository = lambda: stub_repository
with pytest.raises(exceptions.RedirectDetected) as err:
upload.upload(upload_settings, [helpers.WHEEL_FIXTURE])
assert "https://test.pypi.org/legacy/" in err.value.args[0]
def test_get_repository_config_with_invalid_url(tmpdir, repo_url, message):
"""Raise an exception for a URL with an invalid/missing scheme and/or host."""
pypirc = os.path.join(str(tmpdir), ".pypirc")
with pytest.raises(
exceptions.UnreachableRepositoryURLDetected, match=message,
):
utils.get_repository_from_config(pypirc, "pypi", repo_url)
def test_get_password_keyring_missing_non_interactive_aborts(
entered_username, keyring_missing_get_credentials, config
):
with pytest.raises(exceptions.NonInteractive):
auth.Private(config, cred("user")).password
def test_catches_enoent():
with pytest.raises(SystemExit):
cli.dispatch(["non-existent-command"])
def test_pypiserver_upload(pypiserver_instance, uploadable_dist):
command = [
"upload",
"--repository-url",
pypiserver_instance.url,
"--username",
"any",
"--password",
"any",
str(uploadable_dist),
]
cli.dispatch(command)
def test_values_from_env(monkeypatch):
"""Test calling main via cli"""
def none_register(*args, **settings_kwargs):
pass
replaced_register = pretend.call_recorder(none_register)
monkeypatch.setattr(register, "register", replaced_register)
testenv = {
"TWINE_USERNAME": "pypiuser",
"TWINE_PASSWORD": "pypipassword",
"TWINE_CERT": "/foo/bar.crt",
}
with helpers.set_env(**testenv):
cli.dispatch(["register", helpers.WHEEL_FIXTURE])
register_settings = replaced_register.calls[0].args[0]
assert "pypipassword" == register_settings.password
assert "pypiuser" == register_settings.username
assert "/foo/bar.crt" == register_settings.cacert