Merge pull request #3943 from Itz-Agasta/test_fix

Tests: Replace eval() with ast.literal_eval() for safer parsing
This commit is contained in:
Sarah Hoffmann
2026-01-25 10:10:15 +01:00
committed by GitHub
2 changed files with 5 additions and 2 deletions

View File

@@ -7,6 +7,7 @@
"""
Helper functions to compare expected values.
"""
import ast
import collections.abc
import json
import re
@@ -58,7 +59,8 @@ COMPARISON_FUNCS = {
None: lambda val, exp: str(val) == exp,
'i': lambda val, exp: str(val).lower() == exp.lower(),
'fm': lambda val, exp: re.fullmatch(exp, val) is not None,
'dict': lambda val, exp: val is None if exp == '-' else (val == eval('{' + exp + '}')),
'dict': lambda val, exp: (val is None if exp == '-'
else (val == ast.literal_eval('{' + exp + '}'))),
'in_box': within_box
}

View File

@@ -7,6 +7,7 @@
"""
Helper classes for filling the place table.
"""
import ast
import random
import string
@@ -51,7 +52,7 @@ class PlaceColumn:
elif key.startswith('addr+'):
self._add_hstore('address', key[5:], value)
elif key in ('name', 'address', 'extratags'):
self.columns[key] = eval('{' + value + '}')
self.columns[key] = ast.literal_eval('{' + value + '}')
else:
assert key in ('class', 'type'), "Unknown column '{}'.".format(key)
self.columns[key] = None if value == '' else value