Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_skip_existing_skips_files_on_repository(response_kwargs):
assert upload.skip_upload(
response=pretend.stub(**response_kwargs),
skip_existing=True,
package=package_file.PackageFile.from_filename(helpers.WHEEL_FIXTURE, None),
)
def test_skip_upload_respects_skip_existing():
assert not upload.skip_upload(
response=pretend.stub(),
skip_existing=False,
package=package_file.PackageFile.from_filename(helpers.WHEEL_FIXTURE, None),
)
def test_pkginfo_returns_no_metadata(monkeypatch):
"""Raise an exception when pkginfo can't interpret the metadata.
This could be caused by a version number or format it doesn't support yet.
"""
def EmptyDist(filename):
return pretend.stub(name=None, version=None)
monkeypatch.setattr(package_file, "DIST_TYPES", {"bdist_wheel": EmptyDist})
filename = "tests/fixtures/twine-1.5.0-py2.py3-none-any.whl"
with pytest.raises(exceptions.InvalidDistribution) as err:
package_file.PackageFile.from_filename(filename, comment=None)
assert "Invalid distribution metadata" in err.value.args[0]
def upload(upload_settings, dists):
dists = _find_dists(dists)
# Determine if the user has passed in pre-signed distributions
signatures = {os.path.basename(d): d for d in dists if d.endswith(".asc")}
uploads = [i for i in dists if not i.endswith(".asc")]
upload_settings.check_repository_url()
repository_url = upload_settings.repository_config['repository']
print("Uploading distributions to {}".format(repository_url))
repository = upload_settings.create_repository()
uploaded_packages = []
for filename in uploads:
package = PackageFile.from_filename(filename, upload_settings.comment)
skip_message = (
" Skipping {} because it appears to already exist".format(
package.basefilename)
)
# Note: The skip_existing check *needs* to be first, because otherwise
# we're going to generate extra HTTP requests against a hardcoded
# URL for no reason.
if (upload_settings.skip_existing and
repository.package_is_uploaded(package)):
print(skip_message)
continue
signed_name = package.signed_basefilename
if signed_name in signatures:
package.add_gpg_signature(signatures[signed_name], signed_name)