forked from github.com/pypiserver
gpg, #106, test: Add upload+sig TC.
- Rename upload-file vars in /upload action.
This commit is contained in:
parent
72f641595c
commit
140796bb6e
@ -140,33 +140,33 @@ def update():
|
||||
raise HTTPError(400, "Unsupported ':action' field: %s" % action)
|
||||
|
||||
try:
|
||||
content = request.files['content']
|
||||
req_pkg = request.files['content']
|
||||
except KeyError:
|
||||
raise HTTPError(400, "Missing 'content' file-field!")
|
||||
|
||||
if (not is_valid_pkg_filename(content.raw_filename) or
|
||||
core.guess_pkgname_and_version(content.raw_filename) is None):
|
||||
raise HTTPError(400, "Bad filename: %s" % content.raw_filename)
|
||||
if (not is_valid_pkg_filename(req_pkg.raw_filename) or
|
||||
core.guess_pkgname_and_version(req_pkg.raw_filename) is None):
|
||||
raise HTTPError(400, "Bad filename: %s" % req_pkg.raw_filename)
|
||||
|
||||
if not config.overwrite and core.exists(packages.root, content.raw_filename):
|
||||
if not config.overwrite and core.exists(packages.root, req_pkg.raw_filename):
|
||||
log.warn("Cannot upload package(%s) since it already exists! \n" +
|
||||
" You may use `--overwrite` option when starting server to disable this check. ",
|
||||
content.raw_filename)
|
||||
req_pkg.raw_filename)
|
||||
msg = "Package already exists! Start server with `--overwrite` option?"
|
||||
raise HTTPError(409, msg)
|
||||
|
||||
try:
|
||||
gpg_sig = request.files['gpg_signature']
|
||||
req_sig = request.files['gpg_signature']
|
||||
except KeyError:
|
||||
gpg_sig = None
|
||||
req_sig = None
|
||||
else:
|
||||
if (not is_valid_pkg_filename(gpg_sig.raw_filename) or
|
||||
core.guess_pkgname_and_version(gpg_sig.raw_filename) is None):
|
||||
if (not is_valid_pkg_filename(req_sig.raw_filename) or
|
||||
core.guess_pkgname_and_version(req_sig.raw_filename) is None):
|
||||
raise HTTPError(400, "Bad gpg signature name: %s" %
|
||||
gpg_sig.raw_filename)
|
||||
req_sig.raw_filename)
|
||||
|
||||
if not config.overwrite and core.exists(packages.root,
|
||||
gpg_sig.raw_filename):
|
||||
req_sig.raw_filename):
|
||||
log.warn("Cannot upload package(%s) because its signature already "
|
||||
"exists! \n You may use the `--overwrite` option when"
|
||||
"starting the server to disable this check.")
|
||||
@ -174,11 +174,11 @@ def update():
|
||||
"`--overwrite` option?")
|
||||
raise HTTPError(409, msg)
|
||||
|
||||
if gpg_sig is None:
|
||||
core.store(packages.root, content.raw_filename, content.save)
|
||||
if req_sig is None:
|
||||
core.store(packages.root, req_pkg.raw_filename, req_pkg.save)
|
||||
else:
|
||||
core.store(packages.root, content.raw_filename, content.save,
|
||||
gpg_sig.raw_filename, gpg_sig.save)
|
||||
core.store(packages.root, req_pkg.raw_filename, req_pkg.save,
|
||||
req_sig.raw_filename, req_sig.save)
|
||||
|
||||
return ""
|
||||
|
||||
|
@ -334,6 +334,20 @@ def test_upload(package, root, testapp):
|
||||
assert len(uploaded_pkgs) == 1
|
||||
assert uploaded_pkgs[0].lower() == package.lower()
|
||||
|
||||
@pytest.mark.parametrize(("package"), [f[0]
|
||||
for f in test_core.files
|
||||
if f[1] and '/' not in f[0]])
|
||||
def test_upload_with_signature(package, root, testapp):
|
||||
resp = testapp.post("/", params={':action': 'file_upload'},
|
||||
upload_files=[
|
||||
('content', package, b''),
|
||||
('gpg_signature', '%s.asc' % package, b'')])
|
||||
assert resp.status_int == 200
|
||||
uploaded_pkgs = [f.basename for f in root.listdir()]
|
||||
assert len(uploaded_pkgs) == 2
|
||||
assert uploaded_pkgs[0].lower() == package.lower()
|
||||
assert uploaded_pkgs[1].lower() == '%s.asc' % package.lower()
|
||||
|
||||
@pytest.mark.parametrize(("package"), [
|
||||
f[0] for f in test_core.files
|
||||
if f[1] is None])
|
||||
|
Loading…
Reference in New Issue
Block a user