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:
russellballestrini 2019-03-02 09:20:26 -05:00
parent 1261b26990
commit e11161ea14
3 changed files with 37 additions and 8 deletions

View file

@ -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):

View file

@ -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",

View file

@ -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)