Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 02ea47a

Browse files
story645QuLogic
andcommitted
test that table uses repr and doesn't try to convert unitized data
Co-authored-by: Elliott Sales de Andrade <[email protected]>
1 parent e394940 commit 02ea47a

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

lib/matplotlib/tests/test_table.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import datetime
2+
from unittest.mock import Mock
3+
14
import numpy as np
25
import pytest
36

@@ -7,6 +10,7 @@
710
from matplotlib.table import CustomCell, Table
811
from matplotlib.testing.decorators import image_comparison, check_figures_equal
912
from matplotlib.transforms import Bbox
13+
import matplotlib.units as munits
1014

1115

1216
def test_non_square():
@@ -229,3 +233,30 @@ def test_table_bbox(fig_test, fig_ref):
229233
loc='center',
230234
bbox=Bbox.from_extents(0.1, 0.2, 0.9, 0.8)
231235
)
236+
237+
238+
@check_figures_equal()
239+
def test_table_unit(fig_test, fig_ref):
240+
# test that table doesn't participate in unit machinery, instead uses repr/str
241+
242+
class FakeUnit:
243+
def __init__(self, thing):
244+
pass
245+
def __repr__(self):
246+
return "Hello"
247+
248+
fake_convertor = munits.ConversionInterface()
249+
fake_convertor.convert = Mock(side_effect=lambda v, u, a: 0)
250+
# not used, here for completeness
251+
fake_convertor.default_units = Mock(side_effect=lambda v, a: None)
252+
fake_convertor.axisinfo = Mock(side_effect=lambda u, a: munits.AxisInfo())
253+
254+
munits.registry[FakeUnit] = fake_convertor
255+
256+
data = [[FakeUnit("yellow"), FakeUnit(42)],
257+
[FakeUnit(datetime.datetime(1968, 8, 1)), FakeUnit(True)]]
258+
259+
fig_test.subplots().table(data)
260+
fig_ref.subplots().table([["Hello", "Hello"], ["Hello", "Hello"]])
261+
fig_test.canvas.draw()
262+
assert not fake_convertor.convert.called

0 commit comments

Comments
 (0)