Kozea / pygal

PYthon svg GrAph plotting Library
https://www.pygal.org
GNU Lesser General Public License v3.0
2.64k stars 411 forks source link

3.0.4: pytest is failing in some units #555

Open kloczek opened 10 months ago

kloczek commented 10 months ago

I'm packaging your module as an rpm package so I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.

List of installed modules in build env: ```console Package Version ----------------------------- ------- alabaster 0.7.13 Babel 2.13.1 blinker 1.6.2 build 1.0.3 cairocffi 1.6.1 CairoSVG 2.7.1 cffi 1.16.0 charset-normalizer 3.3.2 click 8.1.7 cppclean 0.13 cssselect 1.2.0 cssselect2 0.7.0 defusedxml 0.7.1 distro 1.8.0 dnf 4.18.1 docutils 0.20.1 exceptiongroup 1.1.3 Flask 3.0.0 gpg 1.23.0 idna 3.6 imagesize 1.4.1 importlib-metadata 7.0.0 iniconfig 2.0.0 installer 0.7.0 itsdangerous 2.1.2 Jinja2 3.1.2 libdnf 0.72.0 lxml 4.9.3 MarkupSafe 2.1.3 olefile 0.46 packaging 23.2 Pillow 10.1.0 pluggy 1.3.0 ply 3.11 pycparser 2.21 Pygments 2.17.2 pyproject_hooks 1.0.0 pyquery 2.0.0 pytest 7.4.3 python-dateutil 2.8.2 pytz 2023.3 requests 2.31.0 setuptools 69.0.2 six 1.16.0 snowballstemmer 2.2.0 Sphinx 7.1.2 sphinx-rtd-theme 1.2.2 sphinxcontrib-applehelp 1.0.4 sphinxcontrib-devhelp 1.0.5 sphinxcontrib-htmlhelp 2.0.4 sphinxcontrib-jquery 4.1 sphinxcontrib-jsmath 1.0.1 sphinxcontrib-qthelp 1.0.3 sphinxcontrib-serializinghtml 1.1.9 tinycss2 1.2.1 tomli 2.0.1 urllib3 1.26.18 webencodings 0.5.1 Werkzeug 3.0.0 wheel 0.42.0 zipp 3.17.0 ```
kloczek commented 10 months ago
Here is pytest output: ```console + PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-pygal-3.0.4-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-pygal-3.0.4-2.fc35.x86_64/usr/lib/python3.8/site-packages + /usr/bin/pytest -ra -m 'not network' ==================================================================================== test session starts ==================================================================================== platform linux -- Python 3.8.18, pytest-7.4.3, pluggy-1.3.0 rootdir: /home/tkloczko/rpmbuild/BUILD/pygal-3.0.4 collected 4414 items pygal/test/test_bar.py .. [ 0%] pygal/test/test_box.py .......... [ 0%] pygal/test/test_colors.py .......................................................................................... [ 2%] pygal/test/test_config.py ........................................................................................................................................................... [ 5%] ...FF........FF...................................................................................................................................................................... [ 9%] ..................................................................................................................................................................................... [ 14%] ..................................................................................................................................................................................... [ 18%] ..................................................F.FFF.FFFFFFFFFFFF....F.F.FFF.FFFFFFFFFFFF....F................................................. [ 21%] pygal/test/test_date.py .............. [ 21%] pygal/test/test_formatters.py ...... [ 21%] pygal/test/test_graph.py ............................................................................................................................................................ [ 25%] ..................................................................................................................................................................................... [ 29%] ..................................................................................................................................................................................... [ 33%] ..................................................................................................................................................................................... [ 37%] ..................................................................................................................................................................................... [ 41%] ..................................................................................................................................................................................... [ 45%] ..................................................................................................................................................................................... [ 50%] ..................................................................................................................................................................................... [ 54%] ..................................................................................................................................................................................... [ 58%] ..................................................................................................................................................................................... [ 62%] ....................................................................................... [ 64%] pygal/test/test_histogram.py .. [ 64%] pygal/test/test_interpolate.py ...................................................................................................................................................... [ 67%] ..................................................................................................................................................................................... [ 71%] ..................................................................................................................................................................................... [ 75%] ..................................................................................................................................................................................... [ 80%] ..................................................................................................................................................................................... [ 84%] ..................................................................................................................................................................................... [ 88%] ..................................................................................................................................................................................... [ 92%] ..................................................................................................................................................................................... [ 96%] ....................... [ 96%] pygal/test/test_line.py ........................ [ 97%] pygal/test/test_pie.py ...... [ 97%] pygal/test/test_serie_config.py ........ [ 97%] pygal/test/test_sparktext.py .............. [ 98%] pygal/test/test_stacked.py ........ [ 98%] pygal/test/test_style.py .... [ 98%] pygal/test/test_table.py .. [ 98%] pygal/test/test_util.py ................ [ 98%] pygal/test/test_view.py ................................................ [ 99%] pygal/test/test_xml_filters.py .... [100%] ========================================================================================= FAILURES ========================================================================================== ________________________________________________________________________________ test_value_formatter[lxml] _________________________________________________________________________________ def test_value_formatter(): """Test value formatter option""" line = Line(value_formatter=lambda x: str(x) + u('‰')) line.add('_', [10**4, 10**5, 23 * 10**4]) q = line.render_pyquery() assert len(q(".y.axis .guides")) == 11 > assert q(".axis.y text").map(texts) == list( map( lambda x: str(x) + u('‰'), map(float, range(20000, 240000, 20000)) ) ) E AssertionError: assert ['20000.0â\x8...0000.0â\x80°'] == ['20000.0‰', ...0000.0‰', ...] E At index 0 diff: '20000.0â\x80°' != '20000.0‰' E Use -v to get more diff pygal/test/test_config.py:245: AssertionError ________________________________________________________________________________ test_value_formatter[etree] ________________________________________________________________________________ def test_value_formatter(): """Test value formatter option""" line = Line(value_formatter=lambda x: str(x) + u('‰')) line.add('_', [10**4, 10**5, 23 * 10**4]) q = line.render_pyquery() assert len(q(".y.axis .guides")) == 11 > assert q(".axis.y text").map(texts) == list( map( lambda x: str(x) + u('‰'), map(float, range(20000, 240000, 20000)) ) ) E AssertionError: assert ['20000.0â\x8...0000.0â\x80°'] == ['20000.0‰', ...0000.0‰', ...] E At index 0 diff: '20000.0â\x80°' != '20000.0‰' E Use -v to get more diff pygal/test/test_config.py:245: AssertionError ____________________________________________________________________________________ test_no_data[lxml] _____________________________________________________________________________________ def test_no_data(): """Test no data and no data text option""" line = Line() q = line.render_pyquery() assert q(".text-overlay text").text() == "No data" line.no_data_text = u("þæ®þ怀&ij¿’€") q = line.render_pyquery() > assert q(".text-overlay text").text() == u("þæ®þ怀&ij¿’€") E AssertionError: assert 'þæ®þæâ\...x80\x99â\x82¬' == 'þæ®þ怀&ij¿’€' E - þæ®þ怀&ij¿’€ E + þæ®þæâ�¬â�¬&ij¿â��â�¬ pygal/test/test_config.py:306: AssertionError ____________________________________________________________________________________ test_no_data[etree] ____________________________________________________________________________________ def test_no_data(): """Test no data and no data text option""" line = Line() q = line.render_pyquery() assert q(".text-overlay text").text() == "No data" line.no_data_text = u("þæ®þ怀&ij¿’€") q = line.render_pyquery() > assert q(".text-overlay text").text() == u("þæ®þ怀&ij¿’€") E AssertionError: assert 'þæ®þæâ\...x80\x99â\x82¬' == 'þæ®þ怀&ij¿’€' E - þæ®þ怀&ij¿’€ E + þæ®þæâ�¬â�¬&ij¿â��â�¬ pygal/test/test_config.py:306: AssertionError _________________________________________________________________________________ test_formatters[lxml-Bar] _________________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError _________________________________________________________________________________ test_formatters[lxml-Dot] _________________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError _______________________________________________________________________________ test_formatters[lxml-Funnel] ________________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ________________________________________________________________________________ test_formatters[lxml-Gauge] ________________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ____________________________________________________________________________ test_formatters[lxml-HorizontalBar] ____________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ___________________________________________________________________________ test_formatters[lxml-HorizontalLine] ____________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ________________________________________________________________________ test_formatters[lxml-HorizontalStackedBar] _________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ________________________________________________________________________ test_formatters[lxml-HorizontalStackedLine] ________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ________________________________________________________________________________ test_formatters[lxml-Line] _________________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError _________________________________________________________________________________ test_formatters[lxml-Pie] _________________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'15â\x82¬', ...5â\x82¬', ...} == {'15€', '1_a$...€', '5€', ...} E Extra items in the left set: E '4â\x82¬' E '15â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set:... E E ...Full output truncated (6 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError _______________________________________________________________________________ test_formatters[lxml-Pyramid] _______________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ___________________________________________________________________________ test_formatters[lxml-VerticalPyramid] ___________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ________________________________________________________________________________ test_formatters[lxml-Radar] ________________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError _____________________________________________________________________________ test_formatters[lxml-SolidGauge] ______________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'15â\x82¬', ...5â\x82¬', ...} == {'15€', '1_a$...€', '5€', ...} E Extra items in the left set: E '4â\x82¬' E '15â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set:... E E ...Full output truncated (6 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError _____________________________________________________________________________ test_formatters[lxml-StackedBar] ______________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError _____________________________________________________________________________ test_formatters[lxml-StackedLine] _____________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError _______________________________________________________________________________ test_formatters[lxml-Treemap] _______________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ________________________________________________________________________________ test_formatters[etree-Bar] _________________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ________________________________________________________________________________ test_formatters[etree-Dot] _________________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError _______________________________________________________________________________ test_formatters[etree-Funnel] _______________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError _______________________________________________________________________________ test_formatters[etree-Gauge] ________________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ___________________________________________________________________________ test_formatters[etree-HorizontalBar] ____________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ___________________________________________________________________________ test_formatters[etree-HorizontalLine] ___________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ________________________________________________________________________ test_formatters[etree-HorizontalStackedBar] ________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError _______________________________________________________________________ test_formatters[etree-HorizontalStackedLine] ________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ________________________________________________________________________________ test_formatters[etree-Line] ________________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ________________________________________________________________________________ test_formatters[etree-Pie] _________________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'15â\x82¬', ...5â\x82¬', ...} == {'15€', '1_a$...€', '5€', ...} E Extra items in the left set: E '4â\x82¬' E '15â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set:... E E ...Full output truncated (6 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ______________________________________________________________________________ test_formatters[etree-Pyramid] _______________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError __________________________________________________________________________ test_formatters[etree-VerticalPyramid] ___________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError _______________________________________________________________________________ test_formatters[etree-Radar] ________________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError _____________________________________________________________________________ test_formatters[etree-SolidGauge] _____________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'15â\x82¬', ...5â\x82¬', ...} == {'15€', '1_a$...€', '5€', ...} E Extra items in the left set: E '4â\x82¬' E '15â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set:... E E ...Full output truncated (6 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError _____________________________________________________________________________ test_formatters[etree-StackedBar] _____________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ____________________________________________________________________________ test_formatters[etree-StackedLine] _____________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ______________________________________________________________________________ test_formatters[etree-Treemap] _______________________________________________________________________________ Chart = def test_formatters(Chart): """Test custom formatters""" if Chart._dual or Chart == Box: return chart = Chart(formatter=lambda x, chart, serie: '%s%s$' % (x, serie.title)) chart.add('_a', [1, 2, {'value': 3, 'formatter': lambda x: u('%s¥') % x}]) chart.add('_b', [4, 5, 6], formatter=lambda x: u('%s€') % x) chart.x_labels = [2, 4, 6] chart.x_labels_major = [4] q = chart.render_pyquery() > assert set( [v.text for v in q(".value")] ) == set((u('4€'), u('5€'), u('6€'), '1_a$', '2_a$', u('3¥')) + (('6_a$', u('15€')) if Chart in (Pie, SolidGauge) else ())) E AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} E Extra items in the left set: E '4â\x82¬' E '6â\x82¬' E '3Â¥' E '5â\x82¬' E Extra items in the right set: E '6€'... E E ...Full output truncated (4 lines hidden), use '-vv' to show pygal/test/test_config.py:551: AssertionError ================================================================================== short test summary info ================================================================================== FAILED pygal/test/test_config.py::test_value_formatter[lxml] - AssertionError: assert ['20000.0â\x8...0000.0â\x80°'] == ['20000.0‰', ...0000.0‰', ...] FAILED pygal/test/test_config.py::test_value_formatter[etree] - AssertionError: assert ['20000.0â\x8...0000.0â\x80°'] == ['20000.0‰', ...0000.0‰', ...] FAILED pygal/test/test_config.py::test_no_data[lxml] - AssertionError: assert 'þæ®þæâ\...x80\x99â\x82¬' == 'þæ®þ怀&ij¿’€' FAILED pygal/test/test_config.py::test_no_data[etree] - AssertionError: assert 'þæ®þæâ\...x80\x99â\x82¬' == 'þæ®þ怀&ij¿’€' FAILED pygal/test/test_config.py::test_formatters[lxml-Bar] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[lxml-Dot] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[lxml-Funnel] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[lxml-Gauge] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[lxml-HorizontalBar] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[lxml-HorizontalLine] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[lxml-HorizontalStackedBar] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[lxml-HorizontalStackedLine] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[lxml-Line] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[lxml-Pie] - AssertionError: assert {'15â\x82¬', ...5â\x82¬', ...} == {'15€', '1_a$...€', '5€', ...} FAILED pygal/test/test_config.py::test_formatters[lxml-Pyramid] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[lxml-VerticalPyramid] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[lxml-Radar] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[lxml-SolidGauge] - AssertionError: assert {'15â\x82¬', ...5â\x82¬', ...} == {'15€', '1_a$...€', '5€', ...} FAILED pygal/test/test_config.py::test_formatters[lxml-StackedBar] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[lxml-StackedLine] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[lxml-Treemap] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[etree-Bar] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[etree-Dot] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[etree-Funnel] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[etree-Gauge] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[etree-HorizontalBar] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[etree-HorizontalLine] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[etree-HorizontalStackedBar] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[etree-HorizontalStackedLine] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[etree-Line] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[etree-Pie] - AssertionError: assert {'15â\x82¬', ...5â\x82¬', ...} == {'15€', '1_a$...€', '5€', ...} FAILED pygal/test/test_config.py::test_formatters[etree-Pyramid] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[etree-VerticalPyramid] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[etree-Radar] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[etree-SolidGauge] - AssertionError: assert {'15â\x82¬', ...5â\x82¬', ...} == {'15€', '1_a$...€', '5€', ...} FAILED pygal/test/test_config.py::test_formatters[etree-StackedBar] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[etree-StackedLine] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} FAILED pygal/test/test_config.py::test_formatters[etree-Treemap] - AssertionError: assert {'1_a$', '2_a...¬', '6â\x82¬'} == {'1_a$', '2_a...', '5€', '6€'} ======================================================================== 38 failed, 4376 passed in 70.38s (0:01:10) ========================================================================= ```