Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit b40a67c

Browse filesBrowse files
story645rcomer
andcommitted
test that table uses repr and doesn't try to convert unitized data
Co-authored-by: Elliott Sales de Andrade <quantum.analyst@gmail.com> Co-authored-by: Ruth Comer <10599679+rcomer@users.noreply.github.com>
1 parent f0c4c41 commit b40a67c
Copy full SHA for b40a67c

File tree

1 file changed

+35
-0
lines changed
Filter options

1 file changed

+35
-0
lines changed

‎lib/matplotlib/tests/test_table.py

Copy file name to clipboardExpand all lines: lib/matplotlib/tests/test_table.py
+35Lines changed: 35 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,34 @@ 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(extensions=['png'])
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+
# v, u, a = value, unit, axis
250+
fake_convertor.convert = Mock(side_effect=lambda v, u, a: 0)
251+
# not used, here for completeness
252+
fake_convertor.default_units = Mock(side_effect=lambda v, a: None)
253+
fake_convertor.axisinfo = Mock(side_effect=lambda u, a: munits.AxisInfo())
254+
255+
munits.registry[FakeUnit] = fake_convertor
256+
257+
data = [[FakeUnit("yellow"), FakeUnit(42)],
258+
[FakeUnit(datetime.datetime(1968, 8, 1)), FakeUnit(True)]]
259+
260+
fig_test.subplots().table(data)
261+
fig_ref.subplots().table([["Hello", "Hello"], ["Hello", "Hello"]])
262+
fig_test.canvas.draw()
263+
fake_convertor.convert.assert_not_called()
264+
265+
munits.registry.pop(FakeUnit)
266+
assert not munits.registry.get_converter(FakeUnit)

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.