Add test for relative path uris and ssm
fix code to make relative paths work again. changed miniuri/miniuri.py changed setup.py changed test_miniuri.py
This commit is contained in:
parent
1261b26990
commit
e11161ea14
3 changed files with 37 additions and 8 deletions
|
|
@ -56,7 +56,10 @@ class Uri(object):
|
|||
self.authority = uri.split("/")[0]
|
||||
|
||||
# invoke path setter.
|
||||
self.path = uri[len(self.authority) :]
|
||||
offset = 0
|
||||
if self.authority:
|
||||
offset = len(self.authority)
|
||||
self.path = uri[offset:]
|
||||
|
||||
@property
|
||||
def authority(self):
|
||||
|
|
@ -76,12 +79,13 @@ class Uri(object):
|
|||
@authority.setter
|
||||
def authority(self, a):
|
||||
"""set all the attribute that makeup a authority"""
|
||||
self.username = self.password = self.port = None
|
||||
self.hostname = a
|
||||
if "@" in self.hostname:
|
||||
self.userinfo, self.hostname = a.split("@") # userinfo setter
|
||||
if ":" in self.hostname:
|
||||
self.hostname, self.port = self.hostname.split(":")
|
||||
if a:
|
||||
self.username = self.password = self.port = None
|
||||
self.hostname = a
|
||||
if "@" in self.hostname:
|
||||
self.userinfo, self.hostname = a.split("@") # userinfo setter
|
||||
if ":" in self.hostname:
|
||||
self.hostname, self.port = self.hostname.split(":")
|
||||
|
||||
@property
|
||||
def relative_uri(self):
|
||||
|
|
|
|||
2
setup.py
2
setup.py
|
|
@ -4,7 +4,7 @@ from setuptools import setup, find_packages
|
|||
|
||||
setup(
|
||||
name="miniuri",
|
||||
version="1.0.6",
|
||||
version="1.0.7",
|
||||
long_description=open("README.rst").read(),
|
||||
description="miniuri: The Universal URI Parser",
|
||||
keywords="miniuri uri url parser",
|
||||
|
|
|
|||
|
|
@ -185,6 +185,15 @@ class TestMiniUri(TestCase):
|
|||
def test_relative_uri(self):
|
||||
self.assertEqual(self.u.relative_uri, "/path/filename.jpg?p=2#5")
|
||||
|
||||
def test_only_relative_uri(self):
|
||||
u = Uri("/about.html")
|
||||
self.assertEqual(u.relative_uri, "/about.html")
|
||||
self.assertEqual(u.filename, "about.html")
|
||||
self.assertEqual(u.extension, "html")
|
||||
self.assertIsNone(u.fragment, None)
|
||||
self.assertIsNone(u.hostname, None)
|
||||
self.assertIsNone(u.scheme, None)
|
||||
|
||||
def test_empty_uri_sets_attrs_to_none(self):
|
||||
self.u.uri = ""
|
||||
self.assertEqual(self.u.uri, "")
|
||||
|
|
@ -246,3 +255,19 @@ class TestMiniUri(TestCase):
|
|||
self.assertIsNone(self.u.fragment)
|
||||
self.assertIsNone(self.u.extension)
|
||||
self.assertIsNone(self.u.authority)
|
||||
|
||||
def test_ssm_uri(self):
|
||||
self.u = Uri("ssm:///path/to/my/parameter")
|
||||
self.assertEqual(self.u.uri, "ssm:///path/to/my/parameter")
|
||||
self.assertEqual(self.u.scheme, "ssm")
|
||||
self.assertIsNone(self.u.username)
|
||||
self.assertIsNone(self.u.password)
|
||||
self.assertIsNone(self.u.hostname)
|
||||
self.assertIsNone(self.u.port)
|
||||
self.assertEqual(self.u.path, "/path/to/my/parameter")
|
||||
self.assertEqual(self.u.filename, "parameter")
|
||||
self.assertIsNone(self.u.query)
|
||||
self.assertIsNone(self.u.fragment)
|
||||
self.assertIsNone(self.u.extension)
|
||||
self.assertIsNone(self.u.authority)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue