Sitelet https://github.com/python/cpython/commit/1974baadc62a6c95db9c96fa482377df98ce36cc
Skip to content

Commit 1974baa

Browse files
committed
Fix issue16713 - tel url parsing with params
1 parent 332562f commit 1974baa

3 files changed

Lines changed: 36 additions & 1 deletion

File tree

‎Lib/test/test_urlparse.py‎

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,10 +446,43 @@ def test_issue14072(self):
446446
p1 = urlparse.urlsplit('tel:+31-641044153')
447447
self.assertEqual(p1.scheme, 'tel')
448448
self.assertEqual(p1.path, '+31-641044153')
449+
449450
p2 = urlparse.urlsplit('tel:+31641044153')
450451
self.assertEqual(p2.scheme, 'tel')
451452
self.assertEqual(p2.path, '+31641044153')
452453

454+
# Assert for urlparse
455+
p1 = urlparse.urlparse('tel:+31-641044153')
456+
self.assertEqual(p1.scheme, 'tel')
457+
self.assertEqual(p1.path, '+31-641044153')
458+
459+
p2 = urlparse.urlparse('tel:+31641044153')
460+
self.assertEqual(p2.scheme, 'tel')
461+
self.assertEqual(p2.path, '+31641044153')
462+
463+
464+
def test_telurl_params(self):
465+
p1 = urlparse.urlparse('tel:123-4;phone-context=+1-650-516')
466+
self.assertEqual(p1.scheme, 'tel')
467+
self.assertEqual(p1.path, '123-4')
468+
self.assertEqual(p1.params, 'phone-context=+1-650-516')
469+
470+
p1 = urlparse.urlparse('tel:+1-201-555-0123')
471+
self.assertEqual(p1.scheme, 'tel')
472+
self.assertEqual(p1.path, '+1-201-555-0123')
473+
self.assertEqual(p1.params, '')
474+
475+
p1 = urlparse.urlparse('tel:7042;phone-context=example.com')
476+
self.assertEqual(p1.scheme, 'tel')
477+
self.assertEqual(p1.path, '7042')
478+
self.assertEqual(p1.params, 'phone-context=example.com')
479+
480+
p1 = urlparse.urlparse('tel:863-1234;phone-context=+1-914-555')
481+
self.assertEqual(p1.scheme, 'tel')
482+
self.assertEqual(p1.path, '863-1234')
483+
self.assertEqual(p1.params, 'phone-context=+1-914-555')
484+
485+
453486
def test_attributes_bad_port(self):
454487
"""Check handling of non-integer ports."""
455488
p = urlparse.urlsplit("http://www.example.net:foo")

‎Lib/urlparse.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
'svn', 'svn+ssh', 'sftp','nfs','git', 'git+ssh']
4343
uses_params = ['ftp', 'hdl', 'prospero', 'http', 'imap',
4444
'https', 'shttp', 'rtsp', 'rtspu', 'sip', 'sips',
45-
'mms', '', 'sftp']
45+
'mms', '', 'sftp', 'tel']
4646

4747
# These are not actually used anymore, but should stay for backwards
4848
# compatibility. (They are undocumented, but have a public-looking name.)

‎Misc/NEWS‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,8 @@ Core and Builtins
164164
Library
165165
-------
166166

167+
- Issue #16713: Fix the parsing of tel url with params using urlparse module.
168+
167169
- Issue #16443: Add docstrings to regular expression match objects.
168170
Patch by Anton Kasyanov.
169171

0 commit comments

Comments
 (0)