1+ import pytest
2+ import os
3+
4+ class TestSafeLiteralEval :
5+
6+ def test_reads_dictionary_from_file (self , temp_dir ):
7+ test_file = os .path .join (temp_dir , "config.txt" )
8+ with open (test_file , "w" ) as f :
9+ f .write ("{'name': 'test', 'value': 123}" )
10+
11+ from concore import safe_literal_eval
12+ result = safe_literal_eval (test_file , {})
13+
14+ assert result == {'name' : 'test' , 'value' : 123 }
15+
16+ def test_returns_default_when_file_missing (self ):
17+ from concore import safe_literal_eval
18+ result = safe_literal_eval ("nonexistent_file.txt" , "fallback" )
19+
20+ assert result == "fallback"
21+
22+ def test_returns_default_for_empty_file (self , temp_dir ):
23+ test_file = os .path .join (temp_dir , "empty.txt" )
24+ with open (test_file , "w" ) as f :
25+ pass
26+
27+ from concore import safe_literal_eval
28+ result = safe_literal_eval (test_file , "default" )
29+
30+ assert result == "default"
31+
32+
33+ class TestTryparam :
34+
35+ @pytest .fixture (autouse = True )
36+ def reset_params (self ):
37+ from concore import params
38+ original_params = params .copy ()
39+ yield
40+ params .clear ()
41+ params .update (original_params )
42+
43+ def test_returns_existing_parameter (self ):
44+ from concore import tryparam , params
45+ params ['my_setting' ] = 'custom_value'
46+
47+ result = tryparam ('my_setting' , 'default_value' )
48+
49+ assert result == 'custom_value'
50+
51+ def test_returns_default_for_missing_parameter (self ):
52+ from concore import tryparam
53+ result = tryparam ('missing_param' , 'fallback' )
54+
55+ assert result == 'fallback'
56+
57+
58+ class TestZeroMQPort :
59+
60+ def test_class_is_defined (self ):
61+ from concore import ZeroMQPort
62+ assert ZeroMQPort is not None
63+
64+
65+ class TestDefaultConfiguration :
66+
67+ def test_default_input_path (self ):
68+ from concore import inpath
69+ assert inpath == "./in"
70+
71+ def test_default_output_path (self ):
72+ from concore import outpath
73+ assert outpath == "./out"
74+
75+
76+ class TestPublicAPI :
77+
78+ def test_module_imports_successfully (self ):
79+ from concore import safe_literal_eval
80+ assert safe_literal_eval is not None
81+
82+ def test_core_functions_exist (self ):
83+ from concore import safe_literal_eval , tryparam , default_maxtime
84+
85+ assert callable (safe_literal_eval )
86+ assert callable (tryparam )
87+ assert callable (default_maxtime )
0 commit comments