blender-asset-tracer/tests/test_shaman.py
Sybren A. Stüvel b22b9da5d0 Shaman: Moved URL parsing into a separate function
This allows other code to just call that function, rather than copying
the behaviour.
2019-03-01 14:07:24 +01:00

46 lines
1.4 KiB
Python

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'),
)