code: def test_several_dataframes():
      df = pd.DataFrame(dict(x=[0, 1], y=[1, 10], z=[0.1, 0.8]))
      df2 = pd.DataFrame(dict(time=[23, 26], money=[100, 200]))
      fig = px.scatter(df, x="z", y=df2.money, size="x")
      assert (
          fig.data[0].hovertemplate
          == "z=%{x}<br>y=%{y}<br>x=%{marker.size}<extra></extra>"
      )
      fig = px.scatter(df2, x=df.z, y=df2.money, size=df.z)
      assert (
          fig.data[0].hovertemplate
          == "x=%{x}<br>money=%{y}<br>size=%{marker.size}<extra></extra>"
      )
      # Name conflict
      with pytest.raises(NameError) as err_msg:
          fig = px.scatter(df, x="z", y=df2.money, size="y")
      assert "A name conflict was encountered for argument 'y'" in str(
          err_msg.value
      )
      with pytest.raises(NameError) as err_msg:
          fig = px.scatter(df, x="z", y=df2.money, size=df.y)
      assert "A name conflict was encountered for argument 'y'" in str(
          err_msg.value
      )
  
      # No conflict when the dataframe is not given, fields are used
      df = pd.DataFrame(dict(x=[0, 1], y=[3, 4]))
      df2 = pd.DataFrame(dict(x=[3, 5], y=[23, 24]))
      fig = px.scatter(x=df.y, y=df2.y)
      assert np.all(fig.data[0].x == np.array([3, 4]))
      assert np.all(fig.data[0].y == np.array([23, 24]))
      assert (
          fig.data[0].hovertemplate == "x=%{x}<br>y=%{y}<extra></extra>"
      )
  
      df = pd.DataFrame(dict(x=[0, 1], y=[3, 4]))
      df2 = pd.DataFrame(dict(x=[3, 5], y=[23, 24]))
      df3 = pd.DataFrame(dict(y=[0.1, 0.2]))
      fig = px.scatter(x=df.y, y=df2.y, size=df3.y)
      assert np.all(fig.data[0].x == np.array([3, 4]))
      assert np.all(fig.data[0].y == np.array([23, 24]))
      assert (
          fig.data[0].hovertemplate
          == "x=%{x}<br>y=%{y}<br>size=%{marker.size}<extra></extra>"
      )
  
      df = pd.DataFrame(dict(x=[0, 1], y=[3, 4]))
      df2 = pd.DataFrame(dict(x=[3, 5], y=[23, 24]))
      df3 = pd.DataFrame(dict(y=[0.1, 0.2]))
      fig = px.scatter(x=df.y, y=df2.y, hover_data=[df3.y])
      assert np.all(fig.data[0].x == np.array([3, 4]))
      assert np.all(fig.data[0].y == np.array([23, 24]))
      assert (
          fig.data[0].hovertemplate
          == "x=%{x}<br>y=%{y}<br>hover_data_0=%{customdata[0]}<extra></extra>"
      )
  
imports: import plotly.express
  import plotly.graph_objects
  import numpy
  import pandas
  import pytest
  from packaging import version
  import unittest.mock
  from plotly.express._core import build_dataframe
  from pandas.testing import assert_frame_equal
label_desc: Use image node_id 6 for calling a global function with example usage: test_several_dataframes() without return types