diff --git a/conservancy_beancount/rtutil.py b/conservancy_beancount/rtutil.py index 081d7f1bf2f8a100c7a5a35ac43f23c5f6ab362a..f1548456fae820629b46285a4586344d7dbb08db 100644 --- a/conservancy_beancount/rtutil.py +++ b/conservancy_beancount/rtutil.py @@ -50,7 +50,7 @@ class RT: self.rt = rt_client urlparts = urlparse.urlparse(rt_client.url) try: - index = urlparts.path.index('/REST/') + index = urlparts.path.rindex('/REST/') except ValueError: base_path = urlparts.path.rstrip('/') + '/' else: diff --git a/tests/test_rtutil.py b/tests/test_rtutil.py index 87333e7c54704b85879d570762266731466e2876..9aed048bbc91874b0513f51f1964958c78f38a5f 100644 --- a/tests/test_rtutil.py +++ b/tests/test_rtutil.py @@ -121,3 +121,9 @@ def test_exists_caches(new_client): ]) def test_parse(rt, link, expected): assert rt.parse(link) == expected + +def test_uncommon_server_url_parsing(): + url = 'https://example.org/REST/1.0/' + client = testutil.RTClient(url + 'REST/1.0/') + rt = rtutil.RT(client) + assert rt.url(1).startswith(url)