Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3.0.4: pytest is failing in some units #555

Open
kloczek opened this issue Dec 4, 2023 · 1 comment
Open

3.0.4: pytest is failing in some units #555

kloczek opened this issue Dec 4, 2023 · 1 comment

Comments

@kloczek
Copy link

kloczek commented Dec 4, 2023

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.

  • python3 -sBm build -w --no-isolation
  • because I'm calling build with --no-isolation I'm using during all processes only locally installed modules
  • install .whl file in </install/prefix> using 'installer` module
  • run pytest with $PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>
  • build is performed in env which is cut off from access to the public network (pytest is executed with -m "not network")
List of installed modules in build env:
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
Copy link
Author

kloczek commented Dec 4, 2023

Here is pytest output:
+ 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 = <class 'pygal.graph.bar.Bar'>

    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 = <class 'pygal.graph.dot.Dot'>

    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 = <class 'pygal.graph.funnel.Funnel'>

    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 = <class 'pygal.graph.gauge.Gauge'>

    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 = <class 'pygal.graph.horizontalbar.HorizontalBar'>

    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 = <class 'pygal.graph.horizontalline.HorizontalLine'>

    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 = <class 'pygal.graph.horizontalstackedbar.HorizontalStackedBar'>

    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 = <class 'pygal.graph.horizontalstackedline.HorizontalStackedLine'>

    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 = <class 'pygal.graph.line.Line'>

    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 = <class 'pygal.graph.pie.Pie'>

    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 = <class 'pygal.graph.pyramid.Pyramid'>

    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 = <class 'pygal.graph.pyramid.VerticalPyramid'>

    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 = <class 'pygal.graph.radar.Radar'>

    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 = <class 'pygal.graph.solidgauge.SolidGauge'>

    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 = <class 'pygal.graph.stackedbar.StackedBar'>

    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 = <class 'pygal.graph.stackedline.StackedLine'>

    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 = <class 'pygal.graph.treemap.Treemap'>

    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 = <class 'pygal.graph.bar.Bar'>

    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 = <class 'pygal.graph.dot.Dot'>

    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 = <class 'pygal.graph.funnel.Funnel'>

    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 = <class 'pygal.graph.gauge.Gauge'>

    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 = <class 'pygal.graph.horizontalbar.HorizontalBar'>

    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 = <class 'pygal.graph.horizontalline.HorizontalLine'>

    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 = <class 'pygal.graph.horizontalstackedbar.HorizontalStackedBar'>

    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 = <class 'pygal.graph.horizontalstackedline.HorizontalStackedLine'>

    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 = <class 'pygal.graph.line.Line'>

    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 = <class 'pygal.graph.pie.Pie'>

    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 = <class 'pygal.graph.pyramid.Pyramid'>

    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 = <class 'pygal.graph.pyramid.VerticalPyramid'>

    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 = <class 'pygal.graph.radar.Radar'>

    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 = <class 'pygal.graph.solidgauge.SolidGauge'>

    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 = <class 'pygal.graph.stackedbar.StackedBar'>

    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 = <class 'pygal.graph.stackedline.StackedLine'>

    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 = <class 'pygal.graph.treemap.Treemap'>

    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) =========================================================================

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant