Skip to content
Snippets Groups Projects
Verified Commit 1c556931 authored by Daniel Hornung's avatar Daniel Hornung
Browse files

FIX: Allowing Umlaut in cfood's $expression

parent af715a5b
No related branches found
No related tags found
2 merge requests!178FIX: #96 Better error output for crawl.py script.,!169Umlaut in cfood
Pipeline #51342 passed with warnings
...@@ -21,6 +21,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ...@@ -21,6 +21,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed ### ### Fixed ###
* [93](https://gitlab.com/linkahead/linkahead-crawler/-/issues/93) cfood.yaml does not allow umlaut in $expression
### Security ### ### Security ###
### Documentation ### ### Documentation ###
......
...@@ -53,7 +53,7 @@ from .utils import has_parent ...@@ -53,7 +53,7 @@ from .utils import has_parent
# by the converters: # by the converters:
SPECIAL_PROPERTIES = ("description", "name", "id", "path", SPECIAL_PROPERTIES = ("description", "name", "id", "path",
"file", "checksum", "size") "file", "checksum", "size")
SINGLE_VAR_RE = re.compile(r"^\$(\{)?(?P<varname>[0-9a-zA-Z_]+)(\})?$") SINGLE_VAR_RE = re.compile(r"^\$(\{)?(?P<varname>\w+)(\})?$")
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
......
...@@ -22,13 +22,11 @@ ...@@ -22,13 +22,11 @@
from pytest import mark from pytest import mark
import caosdb as db from caoscrawler.converters import replace_variables
from caoscrawler.crawl import Crawler from caoscrawler.crawl import Crawler
from caoscrawler.identifiable import Identifiable
from caoscrawler.identifiable_adapters import CaosDBIdentifiableAdapter
from caoscrawler.structure_elements import DictElement
from caoscrawler.structure_elements import DictElement
from caoscrawler.stores import GeneralStore
from caoscrawler.scanner import create_converter_registry, scan_structure_elements from caoscrawler.scanner import create_converter_registry, scan_structure_elements
...@@ -110,3 +108,19 @@ def test_list_datatypes(): ...@@ -110,3 +108,19 @@ def test_list_datatypes():
assert isinstance(records[0].get_property("Subject").value, list) assert isinstance(records[0].get_property("Subject").value, list)
assert records[0].get_property("Subject").datatype is not None assert records[0].get_property("Subject").datatype is not None
assert records[0].get_property("Subject").datatype.startswith("LIST") assert records[0].get_property("Subject").datatype.startswith("LIST")
def test_issue_93():
"""https://gitlab.com/linkahead/linkahead-crawler/-/issues/93
cfood.yaml does not allow umlaut in $expression"""
values = GeneralStore()
expressions = [
"1",
"Ä",
"ųøîµ",
]
for exp in expressions:
values[exp] = f"This is {exp}"
for exp in expressions:
assert replace_variables(f"${exp}", values) == f"This is {exp}"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment