@@ -29,17 +29,23 @@ def test_numpy_labels():
2929 fig = px .scatter (
3030 x = [1 , 2 , 3 ], y = [2 , 3 , 4 ], labels = {"x" : "time" }
3131 ) # other labels will be kw arguments
32- assert fig .data [0 ]["hovertemplate" ] == "time=%{x}<br>y=%{y}"
32+ assert fig .data [0 ]["hovertemplate" ] == "time=%{x}<br>y=%{y}<extra></extra> "
3333
3434
3535def test_with_index ():
3636 tips = px .data .tips ()
3737 fig = px .scatter (tips , x = tips .index , y = "total_bill" )
38- assert fig .data [0 ]["hovertemplate" ] == "index=%{x}<br>total_bill=%{y}"
38+ assert (
39+ fig .data [0 ]["hovertemplate" ] == "index=%{x}<br>total_bill=%{y}<extra></extra>"
40+ )
3941 fig = px .scatter (tips , x = tips .index , y = tips .total_bill )
40- assert fig .data [0 ]["hovertemplate" ] == "index=%{x}<br>total_bill=%{y}"
42+ assert (
43+ fig .data [0 ]["hovertemplate" ] == "index=%{x}<br>total_bill=%{y}<extra></extra>"
44+ )
4145 fig = px .scatter (tips , x = tips .index , y = tips .total_bill , labels = {"index" : "number" })
42- assert fig .data [0 ]["hovertemplate" ] == "number=%{x}<br>total_bill=%{y}"
46+ assert (
47+ fig .data [0 ]["hovertemplate" ] == "number=%{x}<br>total_bill=%{y}<extra></extra>"
48+ )
4349 # We do not allow "x=index"
4450 with pytest .raises (ValueError ) as err_msg :
4551 fig = px .scatter (tips , x = "index" , y = "total_bill" )
@@ -49,28 +55,34 @@ def test_with_index():
4955 tips = px .data .tips ()
5056 tips .index .name = "item"
5157 fig = px .scatter (tips , x = tips .index , y = "total_bill" )
52- assert fig .data [0 ]["hovertemplate" ] == "item=%{x}<br>total_bill=%{y}"
58+ assert fig .data [0 ]["hovertemplate" ] == "item=%{x}<br>total_bill=%{y}<extra></extra> "
5359
5460
5561def test_pandas_series ():
5662 tips = px .data .tips ()
5763 before_tip = tips .total_bill - tips .tip
5864 fig = px .bar (tips , x = "day" , y = before_tip )
59- assert fig .data [0 ].hovertemplate == "day=%{x}<br>y=%{y}"
65+ assert fig .data [0 ].hovertemplate == "day=%{x}<br>y=%{y}<extra></extra> "
6066 fig = px .bar (tips , x = "day" , y = before_tip , labels = {"y" : "bill" })
61- assert fig .data [0 ].hovertemplate == "day=%{x}<br>bill=%{y}"
67+ assert fig .data [0 ].hovertemplate == "day=%{x}<br>bill=%{y}<extra></extra> "
6268 # lock down that we can pass df.col to facet_*
6369 fig = px .bar (tips , x = "day" , y = "tip" , facet_row = tips .day , facet_col = tips .day )
64- assert fig .data [0 ].hovertemplate == "day=%{x}<br>tip=%{y}"
70+ assert fig .data [0 ].hovertemplate == "day=%{x}<br>tip=%{y}<extra></extra> "
6571
6672
6773def test_several_dataframes ():
6874 df = pd .DataFrame (dict (x = [0 , 1 ], y = [1 , 10 ], z = [0.1 , 0.8 ]))
6975 df2 = pd .DataFrame (dict (time = [23 , 26 ], money = [100 , 200 ]))
7076 fig = px .scatter (df , x = "z" , y = df2 .money , size = "x" )
71- assert fig .data [0 ].hovertemplate == "z=%{x}<br>y=%{y}<br>x=%{marker.size}"
77+ assert (
78+ fig .data [0 ].hovertemplate
79+ == "z=%{x}<br>y=%{y}<br>x=%{marker.size}<extra></extra>"
80+ )
7281 fig = px .scatter (df2 , x = df .z , y = df2 .money , size = df .z )
73- assert fig .data [0 ].hovertemplate == "x=%{x}<br>money=%{y}<br>size=%{marker.size}"
82+ assert (
83+ fig .data [0 ].hovertemplate
84+ == "x=%{x}<br>money=%{y}<br>size=%{marker.size}<extra></extra>"
85+ )
7486 # Name conflict
7587 with pytest .raises (NameError ) as err_msg :
7688 fig = px .scatter (df , x = "z" , y = df2 .money , size = "y" )
@@ -85,15 +97,18 @@ def test_several_dataframes():
8597 fig = px .scatter (x = df .y , y = df2 .y )
8698 assert np .all (fig .data [0 ].x == np .array ([3 , 4 ]))
8799 assert np .all (fig .data [0 ].y == np .array ([23 , 24 ]))
88- assert fig .data [0 ].hovertemplate == "x=%{x}<br>y=%{y}"
100+ assert fig .data [0 ].hovertemplate == "x=%{x}<br>y=%{y}<extra></extra> "
89101
90102 df = pd .DataFrame (dict (x = [0 , 1 ], y = [3 , 4 ]))
91103 df2 = pd .DataFrame (dict (x = [3 , 5 ], y = [23 , 24 ]))
92104 df3 = pd .DataFrame (dict (y = [0.1 , 0.2 ]))
93105 fig = px .scatter (x = df .y , y = df2 .y , size = df3 .y )
94106 assert np .all (fig .data [0 ].x == np .array ([3 , 4 ]))
95107 assert np .all (fig .data [0 ].y == np .array ([23 , 24 ]))
96- assert fig .data [0 ].hovertemplate == "x=%{x}<br>y=%{y}<br>size=%{marker.size}"
108+ assert (
109+ fig .data [0 ].hovertemplate
110+ == "x=%{x}<br>y=%{y}<br>size=%{marker.size}<extra></extra>"
111+ )
97112
98113 df = pd .DataFrame (dict (x = [0 , 1 ], y = [3 , 4 ]))
99114 df2 = pd .DataFrame (dict (x = [3 , 5 ], y = [23 , 24 ]))
@@ -102,7 +117,8 @@ def test_several_dataframes():
102117 assert np .all (fig .data [0 ].x == np .array ([3 , 4 ]))
103118 assert np .all (fig .data [0 ].y == np .array ([23 , 24 ]))
104119 assert (
105- fig .data [0 ].hovertemplate == "x=%{x}<br>y=%{y}<br>hover_data_0=%{customdata[0]}"
120+ fig .data [0 ].hovertemplate
121+ == "x=%{x}<br>y=%{y}<br>hover_data_0=%{customdata[0]}<extra></extra>"
106122 )
107123
108124
@@ -111,7 +127,7 @@ def test_name_heuristics():
111127 fig = px .scatter (df , x = df .y , y = df .x , size = df .y )
112128 assert np .all (fig .data [0 ].x == np .array ([3 , 4 ]))
113129 assert np .all (fig .data [0 ].y == np .array ([0 , 1 ]))
114- assert fig .data [0 ].hovertemplate == "y=%{marker.size}<br>x=%{y}"
130+ assert fig .data [0 ].hovertemplate == "y=%{marker.size}<br>x=%{y}<extra></extra> "
115131
116132
117133def test_repeated_name ():
@@ -133,7 +149,7 @@ def test_arrayattrable_numpy():
133149 )
134150 assert (
135151 fig .data [0 ]["hovertemplate" ]
136- == "total_bill=%{x}<br>tip=%{y}<br>hover_data_0=%{customdata[0]}"
152+ == "total_bill=%{x}<br>tip=%{y}<br>hover_data_0=%{customdata[0]}<extra></extra> "
137153 )
138154 tips = px .data .tips ()
139155 fig = px .scatter (
@@ -145,7 +161,7 @@ def test_arrayattrable_numpy():
145161 )
146162 assert (
147163 fig .data [0 ]["hovertemplate" ]
148- == "total_bill=%{x}<br>tip=%{y}<br>suppl=%{customdata[0]}"
164+ == "total_bill=%{x}<br>tip=%{y}<br>suppl=%{customdata[0]}<extra></extra> "
149165 )
150166
151167
@@ -275,7 +291,7 @@ def test_int_col_names():
275291
276292def test_data_frame_from_dict ():
277293 fig = px .scatter ({"time" : [0 , 1 ], "money" : [1 , 2 ]}, x = "time" , y = "money" )
278- assert fig .data [0 ].hovertemplate == "time=%{x}<br>money=%{y}"
294+ assert fig .data [0 ].hovertemplate == "time=%{x}<br>money=%{y}<extra></extra> "
279295 assert np .all (fig .data [0 ].x == [0 , 1 ])
280296
281297
@@ -306,4 +322,4 @@ def test_pass_df_columns():
306322def test_size_column ():
307323 df = px .data .tips ()
308324 fig = px .scatter (df , x = df ["size" ], y = df .tip )
309- assert fig .data [0 ].hovertemplate == "size=%{x}<br>tip=%{y}"
325+ assert fig .data [0 ].hovertemplate == "size=%{x}<br>tip=%{y}<extra></extra> "
0 commit comments