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)
|
raise HTTPError(400, "Unsupported ':action' field: %s" % action)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
content = request.files['content']
|
req_pkg = request.files['content']
|
||||||
except KeyError:
|
except KeyError:
|
||||||
raise HTTPError(400, "Missing 'content' file-field!")
|
raise HTTPError(400, "Missing 'content' file-field!")
|
||||||
|
|
||||||
if (not is_valid_pkg_filename(content.raw_filename) or
|
if (not is_valid_pkg_filename(req_pkg.raw_filename) or
|
||||||
core.guess_pkgname_and_version(content.raw_filename) is None):
|
core.guess_pkgname_and_version(req_pkg.raw_filename) is None):
|
||||||
raise HTTPError(400, "Bad filename: %s" % content.raw_filename)
|
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" +
|
log.warn("Cannot upload package(%s) since it already exists! \n" +
|
||||||
" You may use `--overwrite` option when starting server to disable this check. ",
|
" 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?"
|
msg = "Package already exists! Start server with `--overwrite` option?"
|
||||||
raise HTTPError(409, msg)
|
raise HTTPError(409, msg)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
gpg_sig = request.files['gpg_signature']
|
req_sig = request.files['gpg_signature']
|
||||||
except KeyError:
|
except KeyError:
|
||||||
gpg_sig = None
|
req_sig = None
|
||||||
else:
|
else:
|
||||||
if (not is_valid_pkg_filename(gpg_sig.raw_filename) or
|
if (not is_valid_pkg_filename(req_sig.raw_filename) or
|
||||||
core.guess_pkgname_and_version(gpg_sig.raw_filename) is None):
|
core.guess_pkgname_and_version(req_sig.raw_filename) is None):
|
||||||
raise HTTPError(400, "Bad gpg signature name: %s" %
|
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,
|
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 "
|
log.warn("Cannot upload package(%s) because its signature already "
|
||||||
"exists! \n You may use the `--overwrite` option when"
|
"exists! \n You may use the `--overwrite` option when"
|
||||||
"starting the server to disable this check.")
|
"starting the server to disable this check.")
|
||||||
@ -174,11 +174,11 @@ def update():
|
|||||||
"`--overwrite` option?")
|
"`--overwrite` option?")
|
||||||
raise HTTPError(409, msg)
|
raise HTTPError(409, msg)
|
||||||
|
|
||||||
if gpg_sig is None:
|
if req_sig is None:
|
||||||
core.store(packages.root, content.raw_filename, content.save)
|
core.store(packages.root, req_pkg.raw_filename, req_pkg.save)
|
||||||
else:
|
else:
|
||||||
core.store(packages.root, content.raw_filename, content.save,
|
core.store(packages.root, req_pkg.raw_filename, req_pkg.save,
|
||||||
gpg_sig.raw_filename, gpg_sig.save)
|
req_sig.raw_filename, req_sig.save)
|
||||||
|
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
@ -334,6 +334,20 @@ def test_upload(package, root, testapp):
|
|||||||
assert len(uploaded_pkgs) == 1
|
assert len(uploaded_pkgs) == 1
|
||||||
assert uploaded_pkgs[0].lower() == package.lower()
|
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"), [
|
@pytest.mark.parametrize(("package"), [
|
||||||
f[0] for f in test_core.files
|
f[0] for f in test_core.files
|
||||||
if f[1] is None])
|
if f[1] is None])
|
||||||
|
Loading…
Reference in New Issue
Block a user