diff options
author | Paul Ganssle <paul@ganssle.io> | 2018-11-07 11:43:21 -0500 |
---|---|---|
committer | Paul Ganssle <paul@ganssle.io> | 2018-11-07 17:38:43 -0500 |
commit | 7417740076af72f49705088009d0b21afea7dd98 (patch) | |
tree | 17cc54b5732771330533b0ed11b01701abad812d /setuptools/tests/test_upload.py | |
parent | f4458afd8c83a233ae637af1d77e77404d2da1e5 (diff) | |
download | external_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.py | 19 |
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() + |