Skip to content
Snippets Groups Projects

Add test for https://gitlab.com/linkahead/linkahead-pylib/-/issues/127

Merged I. Nüske requested to merge f-enh-fit-93-pylinkahead-separate-timeouts into dev
1 unresolved thread

Files

+ 42
0
@@ -29,6 +29,7 @@ import os
import tempfile
import time
import warnings
from pathlib import Path
import linkahead as db
import linkahead.common.utils
@@ -196,3 +197,44 @@ def test_gitlab_com_120():
rt1_retrieved.update()
# The update and addition of a new property must not change this, either.
assert len(rt1_retrieved.get_property(rt2.name).properties) == 0
def test_gitlab_com_127():
"""
Test that the timeout option in pylinkahead.ini accepts separate
connect/read timeouts and timeout None.
See https://gitlab.com/linkahead/linkahead-pylib/-/issues/127 and
https://gitlab.indiscale.com/caosdb/customers/f-fit/management/-/issues/93
"""
# Setup paths and save previous timeout
base_dir = Path(__file__).parent.parent
temp_pylinkahead_path = base_dir/'.pyla-temp-test.ini'
temp_pylinkahead_path.unlink(True)
prev_timeout = None
if db.get_config().has_option('Connection', 'timeout'):
prev_timeout = db.get_config().get('Connection', 'timeout')
# Parse various timeout strings and check successful connect
valid_timeout_strings = ["timeout = None", "timeout=null",
"timeout = (4, 40)", "timeout=(4,4)",
"timeout = (4, None)", "timeout= ( null , 4 )"]
for timeout_string in valid_timeout_strings:
try:
# Create temporary config with timeout option
with open(temp_pylinkahead_path, "x") as temp_pylinkahead:
temp_pylinkahead.write('[Connection]\n')
temp_pylinkahead.write(timeout_string)
# Parse temporary config and check successful connect
db.get_config().read(str(temp_pylinkahead_path))
db.configure_connection()
assert 'Connection to' in str(db.Info())
finally:
# Delete temporary config
temp_pylinkahead_path.unlink()
# Reset configuration
db.get_config().remove_option('Connection', 'timeout')
if prev_timeout is not None:
db.get_config().set('Connection', 'timeout', prev_timeout)
db.configure_connection()
Loading