summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2019-12-01 23:24:17 (GMT)
committerGitHub <noreply@github.com>2019-12-01 23:24:17 (GMT)
commit4f1eaf028058cc357030dfaa5e611c90662539f0 (patch)
tree3cececef150ff9f9fda13d6c9720aaebbec0762d /Lib
parentd300c0e845cdb898b0950642ed75dd0ae883ad12 (diff)
downloadcpython-4f1eaf028058cc357030dfaa5e611c90662539f0.zip
cpython-4f1eaf028058cc357030dfaa5e611c90662539f0.tar.gz
cpython-4f1eaf028058cc357030dfaa5e611c90662539f0.tar.bz2
bpo-38449: Add URL delimiters test cases (GH-16729)
* bpo-38449: Add tricky test cases * bpo-38449: Reflect codereview (cherry picked from commit 2fe4c48917c2d1b40cf063c6ed22ae2e71f4cb62) Co-authored-by: Dong-hee Na <donghee.na92@gmail.com>
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_mimetypes.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/Lib/test/test_mimetypes.py b/Lib/test/test_mimetypes.py
index bfd5eee..a5a06b1 100644
--- a/Lib/test/test_mimetypes.py
+++ b/Lib/test/test_mimetypes.py
@@ -51,6 +51,21 @@ class MimeTypesTestCase(unittest.TestCase):
eq(self.db.guess_type('foo.xul', strict=False), ('text/xul', None))
eq(self.db.guess_extension('image/jpg', strict=False), '.jpg')
+ def test_filename_with_url_delimiters(self):
+ # bpo-38449: URL delimiters cases should be handled also.
+ # They would have different mime types if interpreted as URL as
+ # compared to when interpreted as filename because of the semicolon.
+ eq = self.assertEqual
+ gzip_expected = ('application/x-tar', 'gzip')
+ eq(self.db.guess_type(";1.tar.gz"), gzip_expected)
+ eq(self.db.guess_type("?1.tar.gz"), gzip_expected)
+ eq(self.db.guess_type("#1.tar.gz"), gzip_expected)
+ eq(self.db.guess_type("#1#.tar.gz"), gzip_expected)
+ eq(self.db.guess_type(";1#.tar.gz"), gzip_expected)
+ eq(self.db.guess_type(";&1=123;?.tar.gz"), gzip_expected)
+ eq(self.db.guess_type("?k1=v1&k2=v2.tar.gz"), gzip_expected)
+ eq(self.db.guess_type(r" \"\`;b&b&c |.tar.gz"), gzip_expected)
+
def test_guess_all_types(self):
eq = self.assertEqual
unless = self.assertTrue