Skip to content

Commit d066330

Browse files
committed
improve pio.defaults test
1 parent 6837831 commit d066330

File tree

1 file changed

+88
-3
lines changed

1 file changed

+88
-3
lines changed

tests/test_optional/test_kaleido/test_kaleido.py

Lines changed: 88 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,15 +154,100 @@ def test_bytesio():
154154

155155
def test_defaults():
156156
"""Test that image output defaults can be set using pio.defaults.*"""
157+
test_fig = go.Figure(fig)
158+
test_image_bytes = b"mock image data"
159+
160+
# Check initial defaults
161+
assert pio.defaults.default_format == "png"
162+
assert pio.defaults.default_width == 700
163+
assert pio.defaults.default_height == 500
164+
assert pio.defaults.default_scale == 1
165+
assert pio.defaults.mathjax is None
166+
assert pio.defaults.topojson is None
167+
assert pio.defaults.plotlyjs is None
168+
157169
try:
158-
assert pio.defaults.default_format == "png"
170+
# Set new defaults
159171
pio.defaults.default_format = "svg"
172+
pio.defaults.default_width = 701
173+
pio.defaults.default_height = 501
174+
pio.defaults.default_scale = 2
175+
pio.defaults.mathjax = (
176+
"https://cdn.jsdelivr.net/npm/[email protected]/es5/tex-svg.js"
177+
)
178+
pio.defaults.topojson = "path/to/topojson/files/"
179+
pio.defaults.plotlyjs = "https://cdn.plot.ly/plotly-3.0.0.js"
180+
181+
# Check that new defaults are saved
160182
assert pio.defaults.default_format == "svg"
161-
result = pio.to_image(fig, format="svg", validate=False)
162-
assert result.startswith(b"<svg")
183+
assert pio.defaults.default_width == 701
184+
assert pio.defaults.default_height == 501
185+
assert pio.defaults.default_scale == 2
186+
assert (
187+
pio.defaults.mathjax
188+
== "https://cdn.jsdelivr.net/npm/[email protected]/es5/tex-svg.js"
189+
)
190+
assert pio.defaults.topojson == "path/to/topojson/files/"
191+
assert pio.defaults.plotlyjs == "https://cdn.plot.ly/plotly-3.0.0.js"
192+
193+
if kaleido_major() > 0:
194+
# Check that all the defaults values are passed through to the function call to calc_fig_sync
195+
with patch(
196+
"plotly.io._kaleido.kaleido.calc_fig_sync",
197+
return_value=test_image_bytes,
198+
) as mock_calc_fig:
199+
# ===== CLAUDE START HERE 1 =====
200+
result = pio.to_image(test_fig, validate=False)
201+
202+
# Verify calc_fig_sync was called with correct args
203+
# taken from pio.defaults
204+
mock_calc_fig.assert_called_once()
205+
args, kwargs = mock_calc_fig.call_args
206+
assert args[0] == test_fig.to_dict()
207+
assert kwargs["opts"]["format"] == "svg"
208+
assert kwargs["opts"]["width"] == 701
209+
assert kwargs["opts"]["height"] == 501
210+
assert kwargs["opts"]["scale"] == 2
211+
assert kwargs["topojson"] == "path/to/topojson/files/"
212+
# mathjax and plotlyjs are passed through in kopts
213+
assert (
214+
kwargs["kopts"]["mathjax"]
215+
== "https://cdn.jsdelivr.net/npm/[email protected]/es5/tex-svg.js"
216+
)
217+
assert (
218+
kwargs["kopts"]["plotlyjs"]
219+
== "https://cdn.plot.ly/plotly-3.0.0.js"
220+
)
221+
222+
else:
223+
# Check that all the default values have been set in pio._kaleido.scope
224+
assert pio._kaleido.scope.default_format == "svg"
225+
assert pio._kaleido.scope.default_width == 701
226+
assert pio._kaleido.scope.default_height == 501
227+
assert pio._kaleido.scope.default_scale == 2
228+
assert (
229+
pio._kaleido.scope.mathjax
230+
== "https://cdn.jsdelivr.net/npm/[email protected]/es5/tex-svg.js"
231+
)
232+
assert pio._kaleido.scope.topojson == "path/to/topojson/files/"
233+
assert pio._kaleido.scope.plotlyjs == "https://cdn.plot.ly/plotly-3.0.0.js"
234+
163235
finally:
236+
# Reset defaults to original values and check that they are restored
164237
pio.defaults.default_format = "png"
238+
pio.defaults.default_width = 700
239+
pio.defaults.default_height = 500
240+
pio.defaults.default_scale = 1
241+
pio.defaults.mathjax = None
242+
pio.defaults.topojson = None
243+
pio.defaults.plotlyjs = None
165244
assert pio.defaults.default_format == "png"
245+
assert pio.defaults.default_width == 700
246+
assert pio.defaults.default_height == 500
247+
assert pio.defaults.default_scale == 1
248+
assert pio.defaults.mathjax is None
249+
assert pio.defaults.topojson is None
250+
assert pio.defaults.plotlyjs is None
166251

167252

168253
def test_fig_write_image():

0 commit comments

Comments
 (0)