diff --git a/tests/test_issues_server.py b/tests/test_issues_server.py index 6e1286da2970ff60c08723a479ce4596a6b59541..2f0e17e36966d54ddf13ef0dc64717fc969a83cc 100644 --- a/tests/test_issues_server.py +++ b/tests/test_issues_server.py @@ -1262,12 +1262,32 @@ def test_143(num): db.Property(name="scientific_notation", datatype=db.DOUBLE).insert() db.RecordType(name="RT1").add_property("scientific_notation", value=num).insert() - db.execute_query(f"FIND RECORDTYPE RT1 WITH scientific_notation={num}", unique=True) - db.execute_query(f"FIND RECORDTYPE RT1 WITH scientific_notation='{num}'", unique=True) - db.execute_query(f"FIND RECORDTYPE RT1 WITH scientific_notation=\"{num}\"", unique=True) - db.execute_query(f"FIND RECORDTYPE RT1 WITH scientific_notation = {num}", unique=True) - db.execute_query(f"FIND RECORDTYPE RT1 WITH scientific_notation = '{num}'", unique=True) - db.execute_query(f"FIND RECORDTYPE RT1 WITH scientific_notation = \"{num}\"", unique=True) + for query in [ + f"FIND RECORDTYPE RT1 WITH scientific_notation={num}", + f"FIND RECORDTYPE RT1 WITH scientific_notation='{num}'", + f"FIND RECORDTYPE RT1 WITH scientific_notation=\"{num}\"", + f"FIND RECORDTYPE RT1 WITH scientific_notation = {num}", + f"FIND RECORDTYPE RT1 WITH scientific_notation = '{num}'", + f"FIND RECORDTYPE RT1 WITH scientific_notation = \"{num}\"" + ]: + db.execute_query(query, unique=True) + + +@pytest.mark.parametrize("num", ["1 e+23", "- 5e22", "2e -323", "2E- 323", "5 E 22", "1 E+ 23"]) +def test_143_white_space(num): + """https://gitlab.com/caosdb/caosdb-server/-/issues/144""" + + for query in [ + f"FIND RECORDTYPE RT1 WITH scientific_notation={num}", + f"FIND RECORDTYPE RT1 WITH scientific_notation='{num}'", + f"FIND RECORDTYPE RT1 WITH scientific_notation=\"{num}\"", + f"FIND RECORDTYPE RT1 WITH scientific_notation = {num}", + f"FIND RECORDTYPE RT1 WITH scientific_notation = '{num}'", + f"FIND RECORDTYPE RT1 WITH scientific_notation = \"{num}\"" + ]: + with pytest.raises(TransactionError) as cm: + db.execute_query(query) + assert cm.value.msg == f'You typed "{num}". Empty spaces are not allowed in numbers. Did you mean "{num.replace(" ", "")}"?' def test_144():