@@ -34,9 +34,33 @@ def test_filepath() -> str:
3434
3535@pytest .fixture
3636def model_output_generator (request , runner : CliRunner , model_profile_id : str ):
37+ """A generator function for creating new model outputs before running a test.
38+
39+ After the test has run, automatically deletes all model outputs created within
40+ the test
41+
42+ Parameters
43+ -------
44+ request:
45+ Request object by pytest
46+
47+ click.testing.CliRunner
48+ Runner object.
49+
50+ model_profile_id
51+ Model profile ID.
52+ """
3753 model_output_ids = []
3854
3955 def _make_model_output (model_output_name ):
56+ """Create new model output ID.
57+
58+ Parameters
59+ -------
60+ name:
61+ Model output name
62+ """
63+ # `model_profile_id` from `model_output_generator`
4064 result = runner .invoke (
4165 cli .create_new_model_output ,
4266 [model_profile_id , model_output_name ],
@@ -49,10 +73,13 @@ def _make_model_output(model_output_name):
4973
5074 yield _make_model_output
5175
52- # Used if already deleted
76+ # If using tests like model_output_delete, where model output is already deleted,
77+ # we don't want to do the teardown process
5378 if hasattr (request .node , "skip_teardown" ):
5479 return
5580
81+ # If test failed, for debugging purposes, we want to keep the model output in
82+ # me.org
5683 report = request .node .stash [phase_report_key ]
5784 if report ["call" ].failed :
5885 print ("Call to test failed" , request .node .nodeid )
@@ -99,7 +126,7 @@ def test_create_model_output(
99126
100127 assert result .exit_code == 0
101128 model_output_id = result .return_value
102- assert type (model_output_id ) is str # The new model output
129+ assert isinstance (model_output_id , str ) # The new model output
103130
104131 def test_model_output_query (self , runner : CliRunner , model_output_id : str ):
105132 """Test Existing Model output."""
@@ -148,27 +175,24 @@ class TestBenchmark:
148175 def model_output_id (
149176 self , runner : CliRunner , model_output_generator , experiment_id : str
150177 ):
151- id1 = model_output_generator ("meorg_test_benchmark1" )
152- id2 = model_output_generator ("meorg_test_benchmark2" )
153- runner .invoke (
154- cli .model_output_experiments_extend ,
155- [id1 , experiment_id ],
156- )
157- runner .invoke (
158- cli .model_output_experiments_extend ,
159- [id2 , experiment_id ],
160- )
161- return id1
178+ latest_id = None
179+ for i in range (2 ):
180+ latest_id = model_output_generator (f"meorg_test_benchmark{ i } " )
181+ runner .invoke (
182+ cli .model_output_experiments_extend ,
183+ [latest_id , experiment_id ],
184+ )
185+ return latest_id
162186
163187 def _check_available_benchmarks (self , result , expected ):
164188 available_benchmarks = result .get ("benchmarks" )
165- assert type (available_benchmarks ) is list
189+ assert isinstance (available_benchmarks , list )
166190 assert len (available_benchmarks ) == expected
167191 return available_benchmarks
168192
169193 def _check_current_benchmarks (self , result , expected ):
170194 current_benchmarks = result .get ("current" )
171- assert type (current_benchmarks ) is list
195+ assert isinstance (current_benchmarks , list )
172196 assert len (current_benchmarks ) == expected
173197 return current_benchmarks
174198
0 commit comments