1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-12-25 17:36:13 +01:00

store: Remove trailing slash from apiurl

This commit is contained in:
Daniel Mach 2022-11-07 13:57:24 +01:00
parent a53852eca9
commit dc1470a3d7
2 changed files with 19 additions and 2 deletions

View File

@ -174,13 +174,22 @@ class Store:
assert node.tag == node_name
api.write_xml_node_to_file(node, path)
def _sanitize_apiurl(self, value):
# apiurl shouldn't end with a slash, strip it so we can use apiurl without modifications
# in config['api_host_options'][apiurl] and other places
if isinstance(value, str):
value = value.strip("/")
elif isinstance(value, bytes):
value = value.strip(b"/")
return value
@property
def apiurl(self):
return self.read_string("_apiurl")
return self._sanitize_apiurl(self.read_string("_apiurl"))
@apiurl.setter
def apiurl(self, value):
self.write_string("_apiurl", value)
self.write_string("_apiurl", self._sanitize_apiurl(value))
@property
def project(self):

View File

@ -98,6 +98,14 @@ class TestStore(unittest.TestCase):
store2 = Store(self.tmpdir)
self.assertEqual(store2.apiurl, "https://example.com")
def test_apiurl_no_trailing_slash(self):
self.store.apiurl = "https://example.com/"
self.fileEquals("_apiurl", "https://example.com\n")
self.store.write_string("_apiurl", "https://example.com/")
self.fileEquals("_apiurl", "https://example.com/\n")
self.assertEqual(self.store.apiurl, "https://example.com")
def test_package(self):
self.fileEquals("_package", "package name\n")