Commit 08068e0a authored by Steven Guikal's avatar Steven Guikal
Browse files

fix(FastAPI): use configured letter case for SSH fingerprints

Currently, the config parser converts all keys to lowercase which is
inconsistent with the old PHP behavior. This has been fixed and relevant
fingerprint-getting functions have been simplified without changes in

Signed-off-by: Steven Guikal's avatarSteven Guikal <>
parent 7bfc2bf9
......@@ -17,6 +17,7 @@ def _get_parser():
defaults = os.environ.get('AUR_CONFIG_DEFAULTS', path + '.defaults')
_parser = configparser.RawConfigParser()
_parser.optionxform = lambda option: option
if os.path.isfile(defaults):
with open(defaults) as f:
......@@ -48,7 +49,6 @@ def getint(section, option, fallback=None):
return _get_parser().getint(section, option, fallback=fallback)
def get_section(section_name):
for section in _get_parser().sections():
if section == section_name:
return _get_parser()[section]
def get_section(section):
if section in _get_parser().sections():
return _get_parser()[section]
......@@ -166,10 +166,4 @@ def add_samesite_fields(response: Response, value: str):
def get_ssh_fingerprints():
fingerprints = {}
fingerprint_section = aurweb.config.get_section("fingerprints")
if fingerprint_section:
fingerprints = {key: fingerprint_section[key] for key in fingerprint_section.keys()}
return fingerprints
return aurweb.config.get_section("fingerprints") or {}
......@@ -96,7 +96,9 @@ def test_homepage_ssh_fingerprints(get_ssh_fingerprints_mock):
with client as request:
response = request.get("/")
assert list(fingerprints.values())[0] in response.content.decode()
for key, value in fingerprints.items():
assert key in response.content.decode()
assert value in response.content.decode()
assert 'The following SSH fingerprints are used for the AUR' in response.content.decode()
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment