Shaman: Moved URL parsing into a separate function
This allows other code to just call that function, rather than copying the behaviour.
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import unittest
|
||||
|
||||
from blender_asset_tracer.pack import shaman
|
||||
|
||||
|
||||
class ParseEndpointTest(unittest.TestCase):
|
||||
def test_path_slashyness(self):
|
||||
self.assertEqual(
|
||||
('https://endpoint/', '123'),
|
||||
shaman.parse_endpoint('shaman://endpoint#123'),
|
||||
)
|
||||
self.assertEqual(
|
||||
('https://endpoint/', '123'),
|
||||
shaman.parse_endpoint('shaman://endpoint/#123'),
|
||||
)
|
||||
self.assertEqual(
|
||||
('https://endpoint/root', '123'),
|
||||
shaman.parse_endpoint('shaman://endpoint/root#123'),
|
||||
)
|
||||
self.assertEqual(
|
||||
('https://endpoint/root/is/longer/', '123'),
|
||||
shaman.parse_endpoint('shaman://endpoint/root/is/longer/#123'),
|
||||
)
|
||||
|
||||
def test_schemes_with_plus(self):
|
||||
self.assertEqual(
|
||||
('https://endpoint/', '123'),
|
||||
shaman.parse_endpoint('shaman+https://endpoint/#123'),
|
||||
)
|
||||
self.assertEqual(
|
||||
('http://endpoint/', '123'),
|
||||
shaman.parse_endpoint('shaman+http://endpoint/#123'),
|
||||
)
|
||||
|
||||
def test_checkout_ids(self):
|
||||
self.assertEqual(
|
||||
('https://endpoint/', ''),
|
||||
shaman.parse_endpoint('shaman+https://endpoint/'),
|
||||
)
|
||||
|
||||
# Not a valid ID, but the parser should handle it gracefully anyway
|
||||
self.assertEqual(
|
||||
('http://endpoint/', 'ïđ'),
|
||||
shaman.parse_endpoint('shaman+http://endpoint/#%C3%AF%C4%91'),
|
||||
)
|
||||
Reference in New Issue
Block a user