@@ -64,35 +64,67 @@ def test_percent_change_handles_zero_old_value(self):
6464 self .assertEqual (code , 0 )
6565 self .assertEqual (stdout , "n/a\n " )
6666
67- def test_previous_fps_value_reads_previous_row (self ):
68- metrics_name = f"scene_metrics_test_ { os .getpid ()} "
69- path = Path ("/tmp" ) / f"{ metrics_name } .csv"
67+ def test_previous_fps_value_reads_latest_history_row (self ):
68+ history_name = f"fps_history_test_ { os .getpid ()} "
69+ path = Path ("/tmp" ) / f"{ history_name } .csv"
7070 path .write_text (
71- "epoch, FPS, Calls \n "
72- "1, 80, 1 \n "
73- "2, 90, 1 \n "
74- "3, 100, 1 \n " ,
71+ "fps,% change \n "
72+ "80,0.00 \n "
73+ "90,12.50 \n "
74+ "100,11.11 \n " ,
7575 )
7676 try :
7777 code , stdout , stderr = run_script ("previous-fps-value" , env = {
78- "CHOSEN_METRICS " : metrics_name ,
78+ "FPS_HISTORY " : history_name ,
7979 "FALLBACK_FPS_VALUE" : "100" ,
8080 })
8181 finally :
8282 path .unlink (missing_ok = True )
8383
8484 self .assertEqual (code , 0 )
85- self .assertEqual (stdout , "90 .00\n " )
85+ self .assertEqual (stdout , "100 .00\n " )
8686 self .assertEqual (stderr , "" )
8787
8888 def test_previous_fps_value_uses_fallback_without_history (self ):
8989 code , stdout , _stderr = run_script ("previous-fps-value" , env = {
90- "CHOSEN_METRICS " : f"missing_metrics_ { os .getpid ()} " ,
90+ "FPS_HISTORY " : f"missing_history_ { os .getpid ()} " ,
9191 "FALLBACK_FPS_VALUE" : "100" ,
9292 })
9393 self .assertEqual (code , 0 )
9494 self .assertEqual (stdout , "100\n " )
9595
96+ def test_track_fps_history_appends_csv (self ):
97+ history_name = f"fps_history_track_test_{ os .getpid ()} "
98+ path = Path ("/tmp" ) / f"{ history_name } .csv"
99+ github_env = Path ("/tmp" ) / f"github_env_track_test_{ os .getpid ()} "
100+ path .write_text (
101+ "fps,% change,commit sha\n "
102+ "100.00,0.00,old123\n " )
103+ try :
104+ code , stdout , stderr = run_script ("track-fps-history" , env = {
105+ "FPS_HISTORY" : history_name ,
106+ "FPS_VALUE" : "106.04" ,
107+ "FALLBACK_FPS_VALUE" : "100" ,
108+ "GITHUB_SHA" : "0123456789abcdef" ,
109+ "GITHUB_ENV" : str (github_env ),
110+ "PATH" : os .environ ["PATH" ],
111+ })
112+ self .assertEqual (code , 0 )
113+ self .assertEqual (
114+ stdout ,
115+ "Previous value: 100.00 fps\n "
116+ "106.04 fps (6.04% change)\n " )
117+ self .assertEqual (stderr , "" )
118+ self .assertEqual (
119+ path .read_text (),
120+ "fps,% change,commit sha\n "
121+ "100.00,0.00,old123\n "
122+ "106.04,6.04,0123456789\n " )
123+ self .assertEqual (github_env .read_text (), "PERCENT_CHANGE=6.04\n " )
124+ finally :
125+ path .unlink (missing_ok = True )
126+ github_env .unlink (missing_ok = True )
127+
96128 def test_render_url_records_outputs_field_separated_records (self ):
97129 with tempfile .NamedTemporaryFile ("w" , delete = False ) as file :
98130 json .dump ([{
0 commit comments