1+ import json
12import multiprocessing
23import platform
34import time
@@ -75,7 +76,13 @@ def test_multiple_tz(driver, multiple_tz_figure):
7576 time .sleep (1 )
7677 autoscale_requests = RequestParser .filter_callback_requests (fr .get_requests ())
7778 assert len (autoscale_requests ) == 1
78- assert autoscale_requests [0 ].response .status_code == 204
79+ try :
80+ assert autoscale_requests [0 ].response .status_code == 204
81+ except AssertionError :
82+ # In a more recent dash version, this returns a 200 status with no data
83+ assert autoscale_requests [0 ].response .status_code == 200
84+ response_data = json .loads (autoscale_requests [0 ].response .body )
85+ assert response_data .get ("response" ) == {}
7986
8087 if len (driver .get_log ("browser" )) > 0 : # Check no errors in the browser
8188 for entry in driver .get_log ("browser" ):
@@ -159,7 +166,13 @@ def test_basic_example_gui(driver, example_figure):
159166 time .sleep (1 )
160167 vertical_requests = RequestParser .filter_callback_requests (fr .get_requests ())
161168 assert len (vertical_requests ) == 1
162- assert vertical_requests [0 ].response .status_code == 204
169+ try :
170+ assert vertical_requests [0 ].response .status_code == 204
171+ except AssertionError :
172+ # In a more recent dash version, this returns a 200 status with no data
173+ assert vertical_requests [0 ].response .status_code == 200
174+ response_data = json .loads (vertical_requests [0 ].response .body )
175+ assert response_data .get ("response" ) == {}
163176
164177 # we autoscale to the current front-end view, no updated dat will be sent from
165178 # the server to the front-end, however, a callback will still be made, but
@@ -170,7 +183,12 @@ def test_basic_example_gui(driver, example_figure):
170183 time .sleep (1 )
171184 autoscale_requests = RequestParser .filter_callback_requests (fr .get_requests ())
172185 assert len (autoscale_requests ) == 1
173- assert autoscale_requests [0 ].response .status_code == 204
186+ try :
187+ assert autoscale_requests [0 ].response .status_code == 204
188+ except AssertionError :
189+ assert autoscale_requests [0 ].response .status_code == 200
190+ response_data = json .loads (autoscale_requests [0 ].response .body )
191+ assert response_data .get ("response" ) == {}
174192
175193 # The reset axes autoscales AND resets tot he global data view -> all data
176194 # will be updated.
@@ -273,7 +291,13 @@ def test_basic_example_gui_existing(driver, example_figure_fig):
273291 time .sleep (1 )
274292 vertical_requests = RequestParser .filter_callback_requests (fr .get_requests ())
275293 assert len (vertical_requests ) == 1
276- assert vertical_requests [0 ].response .status_code == 204
294+ try :
295+ assert vertical_requests [0 ].response .status_code == 204
296+ except AssertionError :
297+ # In a more recent dash version, this returns a 200 status with no data
298+ assert vertical_requests [0 ].response .status_code == 200
299+ response_data = json .loads (vertical_requests [0 ].response .body )
300+ assert response_data .get ("response" ) == {}
277301
278302 # we autoscale to the current front-end view, no updated dat will be sent from
279303 # the server to the front-end, however, a callback will still be made, but
@@ -284,7 +308,12 @@ def test_basic_example_gui_existing(driver, example_figure_fig):
284308 time .sleep (1 )
285309 autoscale_requests = RequestParser .filter_callback_requests (fr .get_requests ())
286310 assert len (autoscale_requests ) == 1
287- assert autoscale_requests [0 ].response .status_code == 204
311+ try :
312+ assert autoscale_requests [0 ].response .status_code == 204
313+ except AssertionError :
314+ assert autoscale_requests [0 ].response .status_code == 200
315+ response_data = json .loads (autoscale_requests [0 ].response .body )
316+ assert response_data .get ("response" ) == {}
288317
289318 # The reset axes autoscales AND resets tot he global data view -> all data
290319 # will be updated.
@@ -395,7 +424,13 @@ def test_gsr_gui(driver, gsr_figure):
395424 time .sleep (1 )
396425 vertical_requests = RequestParser .filter_callback_requests (fr .get_requests ())
397426 assert len (vertical_requests ) == 1
398- assert vertical_requests [0 ].response .status_code == 204
427+ try :
428+ assert vertical_requests [0 ].response .status_code == 204
429+ except AssertionError :
430+ # In a more recent dash version, this returns a 200 status with no data
431+ assert vertical_requests [0 ].response .status_code == 200
432+ response_data = json .loads (vertical_requests [0 ].response .body )
433+ assert response_data .get ("response" ) == {}
399434
400435 # autoscale
401436 # we autoscale to the current front-end view, no updated dat will be sent from
@@ -407,7 +442,12 @@ def test_gsr_gui(driver, gsr_figure):
407442 time .sleep (1 )
408443 autoscale_requests = RequestParser .filter_callback_requests (fr .get_requests ())
409444 assert len (autoscale_requests ) == 1
410- assert autoscale_requests [0 ].response .status_code == 204
445+ try :
446+ assert autoscale_requests [0 ].response .status_code == 204
447+ except AssertionError :
448+ assert autoscale_requests [0 ].response .status_code == 200
449+ response_data = json .loads (autoscale_requests [0 ].response .body )
450+ assert response_data .get ("response" ) == {}
411451
412452 fr .reset_axes ()
413453 time .sleep (0.2 )
@@ -460,14 +500,26 @@ def test_cat_gui(driver, cat_series_box_hist_figure):
460500 time .sleep (1 )
461501 vertical_requests = RequestParser .filter_callback_requests (fr .get_requests ())
462502 assert len (vertical_requests ) == 1
463- assert vertical_requests [0 ].response .status_code == 204
503+ try :
504+ assert vertical_requests [0 ].response .status_code == 204
505+ except AssertionError :
506+ # In a more recent dash version, this returns a 200 status with no data
507+ assert vertical_requests [0 ].response .status_code == 200
508+ response_data = json .loads (vertical_requests [0 ].response .body )
509+ assert response_data .get ("response" ) == {}
464510
465511 fr .clear_requests (sleep_time_s = 1 )
466512 fr .autoscale ()
467513 time .sleep (1 )
468514 autoscale_requests = RequestParser .filter_callback_requests (fr .get_requests ())
469515 assert len (autoscale_requests ) == 1
470- assert autoscale_requests [0 ].response .status_code == 204
516+ try :
517+ assert autoscale_requests [0 ].response .status_code == 204
518+ except AssertionError :
519+ # In a more recent dash version, this returns a 200 status with no data
520+ assert autoscale_requests [0 ].response .status_code == 200
521+ response_data = json .loads (autoscale_requests [0 ].response .body )
522+ assert response_data .get ("response" ) == {}
471523
472524 # Note: as there is only 1 hf-scatter-trace, the reset axes command will only
473525 # update a single trace
@@ -573,7 +625,13 @@ def test_shared_hover_gui(driver, shared_hover_figure):
573625 time .sleep (1 )
574626 autoscale_requests = RequestParser .filter_callback_requests (fr .get_requests ())
575627 assert len (autoscale_requests ) == 1
576- assert autoscale_requests [0 ].response .status_code == 204
628+ try :
629+ assert autoscale_requests [0 ].response .status_code == 204
630+ except AssertionError :
631+ # In a more recent dash version, this returns a 200 status with no data
632+ assert autoscale_requests [0 ].response .status_code == 200
633+ response_data = json .loads (autoscale_requests [0 ].response .body )
634+ assert response_data .get ("response" ) == {}
577635
578636 if len (driver .get_log ("browser" )) > 0 : # Check no errors in the browser
579637 for entry in driver .get_log ("browser" ):
@@ -652,7 +710,13 @@ def test_multi_trace_go_figure(driver, multi_trace_go_figure):
652710 time .sleep (3 )
653711 autoscale_requests = RequestParser .filter_callback_requests (fr .get_requests ())
654712 assert len (autoscale_requests ) == 1
655- assert autoscale_requests [0 ].response .status_code == 204
713+ try :
714+ assert autoscale_requests [0 ].response .status_code == 204
715+ except AssertionError :
716+ # In a more recent dash version, this returns a 200 status with no data
717+ assert autoscale_requests [0 ].response .status_code == 200
718+ response_data = json .loads (autoscale_requests [0 ].response .body )
719+ assert response_data .get ("response" ) == {}
656720
657721 if len (driver .get_log ("browser" )) > 0 : # Check no errors in the browser
658722 for entry in driver .get_log ("browser" ):
0 commit comments