MCPcopy Index your code
hub / github.com/plotly/plotly.py / test_browser_renderer_show

Function test_browser_renderer_show

tests/test_io/test_renderers.py:219–270  ·  view source on GitHub ↗
(fig1, renderer)

Source from the content-addressed store, hash-verified

217# -------
218@pytest.mark.parametrize("renderer", ["browser", "chrome", "chromium", "firefox"])
219def test_browser_renderer_show(fig1, renderer):
220 pio.renderers.default = renderer
221 renderer_obj = pio.renderers[renderer]
222 using = renderer_obj.using
223 if not isinstance(renderer_obj.using, tuple):
224 using = (using,)
225
226 # Setup mocks
227 mock_get = MagicMock(name="test get")
228 mock_browser = MagicMock(name="test browser")
229 mock_get.return_value = mock_browser
230
231 request_responses = []
232
233 def perform_request(url):
234 request_responses.append(requests.get(url))
235
236 def open_url(url, new=0, autoraise=True):
237 print("open url")
238 # Perform request in thread so that we don't block
239 request_thread = threading.Thread(target=lambda: perform_request(url))
240 request_thread.daemon = True
241 request_thread.start()
242
243 mock_browser.open.side_effect = open_url
244
245 with mock.patch("webbrowser.get", mock_get):
246 pio.show(fig1)
247
248 # check get args
249 mock_get.assert_any_call(using[0])
250
251 # check open args
252 mock_call_args = mock_browser.open.call_args
253 mock_arg1 = mock_call_args[0][0]
254 mock_arg1.startswith("http://127.0.0.1:")
255
256 mock_kwargs = mock_call_args[1]
257 assert mock_kwargs == dict(new=renderer_obj.new, autoraise=renderer_obj.autoraise)
258
259 # Give request content a little time to show up
260 tries = 0
261 while tries < 5 and not request_responses:
262 time.sleep(0.5)
263
264 # Check request content
265 assert len(request_responses) == 1
266 response = request_responses[0]
267 assert response.status_code == 200
268 html = response.content.decode("utf8")
269 assert_full_html(html)
270 assert_offline(html)
271
272
273# Validation

Callers

nothing calls this directly

Calls 4

assert_full_htmlFunction · 0.85
assert_offlineFunction · 0.85
showMethod · 0.45
decodeMethod · 0.45

Tested by

no test coverage detected