aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/tests/test_upload.py
diff options
context:
space:
mode:
authorPaul Ganssle <paul@ganssle.io>2018-11-07 11:43:21 -0500
committerPaul Ganssle <paul@ganssle.io>2018-11-07 17:38:43 -0500
commit7417740076af72f49705088009d0b21afea7dd98 (patch)
tree17cc54b5732771330533b0ed11b01701abad812d /setuptools/tests/test_upload.py
parentf4458afd8c83a233ae637af1d77e77404d2da1e5 (diff)
downloadexternal_python_setuptools-7417740076af72f49705088009d0b21afea7dd98.tar.gz
external_python_setuptools-7417740076af72f49705088009d0b21afea7dd98.tar.bz2
external_python_setuptools-7417740076af72f49705088009d0b21afea7dd98.zip
Add test for invalid URLs in upload_file
Diffstat (limited to 'setuptools/tests/test_upload.py')
-rw-r--r--setuptools/tests/test_upload.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/setuptools/tests/test_upload.py b/setuptools/tests/test_upload.py
index caabb886..6f497f08 100644
--- a/setuptools/tests/test_upload.py
+++ b/setuptools/tests/test_upload.py
@@ -95,7 +95,6 @@ class TestUploadTest:
entries = patched_upload.get_uploaded_metadata()
assert entries['metadata_version'] == '2.1'
-
def test_warns_deprecation(self):
dist = Distribution()
dist.dist_files = [(mock.Mock(), mock.Mock(), mock.Mock())]
@@ -129,3 +128,21 @@ class TestUploadTest:
"upload instead (https://pypi.org/p/twine/)",
log.WARN
)
+
+ @pytest.mark.parametrize('url', [
+ 'https://example.com/a;parameter', # Has parameters
+ 'https://example.com/a?query', # Has query
+ 'https://example.com/a#fragment', # Has fragment
+ 'ftp://example.com', # Invalid scheme
+
+ ])
+ def test_upload_file_invalid_url(self, url, patched_upload):
+ patched_upload.urlopen.side_effect = Exception("Should not be reached")
+
+ cmd = patched_upload.cmd
+ cmd.repository = url
+
+ cmd.ensure_finalized()
+ with pytest.raises(AssertionError):
+ cmd.run()
+