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
behavior.

Signed-off-by: Steven Guikal <void@fluix.one>
This commit is contained in:
Steven Guikal 2021-10-04 13:30:25 -04:00
parent 7bfc2bf9b4
commit 08068e0a5c
3 changed files with 8 additions and 12 deletions

View file

@ -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:
_parser.read_file(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]

View file

@ -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 {}

View file

@ -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()