Skip to content

Commit bb6c7e9

Browse 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 c16d7db commit bb6c7e9

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

lib/matplotlib/tests/test_table.py

Lines 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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy