diff --git a/CHANGELOG b/CHANGELOG index 7fcb725..76ed9fe 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -9,6 +9,7 @@ V 2.0.0 UNRELEASED Support value formatter for pie graphs (#218) (thanks never-eat-yellow-snow) Add new Box plot modes and outliers and set extremes as default (#226 #121 #149) (thanks djezar) Add secondary_range option to set range for secondary values. (#203) + Maps are now plugins, they are removed from pygal core and moved to packages (pygal_maps_world, pygal_maps_fr, pygal_maps_ch, ...) (#225) V 1.7.0 Remove DateY and replace it by real XY datetime, date, time and timedelta support. (#188) diff --git a/demo/moulinrouge/tests.py b/demo/moulinrouge/tests.py index 458ba95..28c51d4 100644 --- a/demo/moulinrouge/tests.py +++ b/demo/moulinrouge/tests.py @@ -2,9 +2,14 @@ # This file is part of pygal from pygal import ( Bar, Gauge, Pyramid, Funnel, Dot, StackedBar, StackedLine, XY, - CHARTS_BY_NAME, Config, Line, Worldmap, Histogram, Box, + CHARTS_BY_NAME, Config, Line, Histogram, Box, Pie, Treemap, TimeLine, DateLine, - DateTimeLine, SupranationalWorldmap) + DateTimeLine) + +try: + from pygal.maps import world +except ImportError: + world = None try: from pygal.maps import fr @@ -413,7 +418,7 @@ def get_test_routes(app): @app.route('/test/worldmap') def test_worldmap(): - wmap = Worldmap(style=choice(list(styles.values()))) + wmap = world.World(style=choice(list(styles.values()))) wmap.add('1st', [('fr', 100), ('us', 10)]) wmap.add('2nd', [('jp', 1), ('ru', 7), ('uk', 0)]) @@ -437,7 +442,7 @@ def get_test_routes(app): @app.route('/test/supranational') def test_supranational(): - wmap = SupranationalWorldmap(style=choice(list(styles.values()))) + wmap = world.SupranationalWorld(style=choice(list(styles.values()))) wmap.add('Asia', [('asia', 1)]) wmap.add('Europe', [('europe', 1)]) diff --git a/pygal/__init__.py b/pygal/__init__.py index 779c0a2..6f18a1e 100644 --- a/pygal/__init__.py +++ b/pygal/__init__.py @@ -40,7 +40,6 @@ from pygal.graph.stackedline import StackedLine from pygal.graph.time import DateLine, DateTimeLine, TimeLine, TimeDeltaLine from pygal.graph.treemap import Treemap from pygal.graph.verticalpyramid import VerticalPyramid -from pygal.graph.worldmap import Worldmap, SupranationalWorldmap from pygal.graph.xy import XY from pygal.graph.graph import Graph from pygal.config import Config diff --git a/pygal/graph/maps/worldmap.svg b/pygal/graph/maps/worldmap.svg deleted file mode 100644 index b024ce1..0000000 --- a/pygal/graph/maps/worldmap.svg +++ /dev/null @@ -1,2410 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/pygal/graph/worldmap.py b/pygal/graph/worldmap.py deleted file mode 100644 index a98a2f7..0000000 --- a/pygal/graph/worldmap.py +++ /dev/null @@ -1,69 +0,0 @@ -# -*- coding: utf-8 -*- -# This file is part of pygal -# -# A python svg graph plotting library -# Copyright © 2012-2014 Kozea -# -# This library is free software: you can redistribute it and/or modify it under -# the terms of the GNU Lesser General Public License as published by the Free -# Software Foundation, either version 3 of the License, or (at your option) any -# later version. -# -# This library is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -# details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with pygal. If not, see . -""" -Worldmap chart - -""" - -from __future__ import division -from pygal.util import cached_property -from pygal.graph.map import BaseMap -from pygal.i18n import COUNTRIES, SUPRANATIONAL -import os - - -with open(os.path.join( - os.path.dirname(__file__), 'maps', - 'worldmap.svg')) as file: - WORLD_MAP = file.read() - - -class Worldmap(BaseMap): - """Worldmap graph""" - x_labels = list(COUNTRIES.keys()) - area_names = COUNTRIES - area_prefix = '' - svg_map = WORLD_MAP - kind = 'country' - - @cached_property - def countries(self): - return [val[0] - for serie in self.all_series - for val in serie.values - if val[0] is not None] - - @cached_property - def _values(self): - """Getter for series values (flattened)""" - return [val[1] - for serie in self.series - for val in serie.values - if val[1] is not None] - - -class SupranationalWorldmap(Worldmap): - """SupranationalWorldmap graph""" - x_labels = list(SUPRANATIONAL.keys()) - - def enumerate_values(self, serie): - """Replaces the values if it contains a supranational code.""" - for i, (code, value) in enumerate(serie.values): - for subcode in SUPRANATIONAL.get(code, []): - yield i, (subcode, value) diff --git a/pygal/i18n.py b/pygal/i18n.py deleted file mode 100644 index 4618767..0000000 --- a/pygal/i18n.py +++ /dev/null @@ -1,260 +0,0 @@ -COUNTRIES = { - 'ad': 'Andorra', - 'ae': 'United Arab Emirates', - 'af': 'Afghanistan', - 'al': 'Albania', - 'am': 'Armenia', - 'ao': 'Angola', - 'aq': 'Antarctica', - 'ar': 'Argentina', - 'at': 'Austria', - 'au': 'Australia', - 'az': 'Azerbaijan', - 'ba': 'Bosnia and Herzegovina', - 'bd': 'Bangladesh', - 'be': 'Belgium', - 'bf': 'Burkina Faso', - 'bg': 'Bulgaria', - 'bh': 'Bahrain', - 'bi': 'Burundi', - 'bj': 'Benin', - 'bn': 'Brunei Darussalam', - 'bo': 'Bolivia, Plurinational State of', - 'br': 'Brazil', - 'bt': 'Bhutan', - 'bw': 'Botswana', - 'by': 'Belarus', - 'bz': 'Belize', - 'ca': 'Canada', - 'cd': 'Congo, the Democratic Republic of the', - 'cf': 'Central African Republic', - 'cg': 'Congo', - 'ch': 'Switzerland', - 'ci': "Cote d'Ivoire", - 'cl': 'Chile', - 'cm': 'Cameroon', - 'cn': 'China', - 'co': 'Colombia', - 'cr': 'Costa Rica', - 'cu': 'Cuba', - 'cv': 'Cape Verde', - 'cy': 'Cyprus', - 'cz': 'Czech Republic', - 'de': 'Germany', - 'dj': 'Djibouti', - 'dk': 'Denmark', - 'do': 'Dominican Republic', - 'dz': 'Algeria', - 'ec': 'Ecuador', - 'ee': 'Estonia', - 'eg': 'Egypt', - 'eh': 'Western Sahara', - 'er': 'Eritrea', - 'es': 'Spain', - 'et': 'Ethiopia', - 'fi': 'Finland', - 'fr': 'France', - 'ga': 'Gabon', - 'gb': 'United Kingdom', - 'ge': 'Georgia', - 'gf': 'French Guiana', - 'gh': 'Ghana', - 'gl': 'Greenland', - 'gm': 'Gambia', - 'gn': 'Guinea', - 'gq': 'Equatorial Guinea', - 'gr': 'Greece', - 'gt': 'Guatemala', - 'gu': 'Guam', - 'gw': 'Guinea-Bissau', - 'gy': 'Guyana', - 'hk': 'Hong Kong', - 'hn': 'Honduras', - 'hr': 'Croatia', - 'ht': 'Haiti', - 'hu': 'Hungary', - 'id': 'Indonesia', - 'ie': 'Ireland', - 'il': 'Israel', - 'in': 'India', - 'iq': 'Iraq', - 'ir': 'Iran, Islamic Republic of', - 'is': 'Iceland', - 'it': 'Italy', - 'jm': 'Jamaica', - 'jo': 'Jordan', - 'jp': 'Japan', - 'ke': 'Kenya', - 'kg': 'Kyrgyzstan', - 'kh': 'Cambodia', - 'kp': "Korea, Democratic People's Republic of", - 'kr': 'Korea, Republic of', - 'kw': 'Kuwait', - 'kz': 'Kazakhstan', - 'la': "Lao People's Democratic Republic", - 'lb': 'Lebanon', - 'li': 'Liechtenstein', - 'lk': 'Sri Lanka', - 'lr': 'Liberia', - 'ls': 'Lesotho', - 'lt': 'Lithuania', - 'lu': 'Luxembourg', - 'lv': 'Latvia', - 'ly': 'Libyan Arab Jamahiriya', - 'ma': 'Morocco', - 'mc': 'Monaco', - 'md': 'Moldova, Republic of', - 'me': 'Montenegro', - 'mg': 'Madagascar', - 'mk': 'Macedonia, the former Yugoslav Republic of', - 'ml': 'Mali', - 'mm': 'Myanmar', - 'mn': 'Mongolia', - 'mo': 'Macao', - 'mr': 'Mauritania', - 'mt': 'Malta', - 'mu': 'Mauritius', - 'mv': 'Maldives', - 'mw': 'Malawi', - 'mx': 'Mexico', - 'my': 'Malaysia', - 'mz': 'Mozambique', - 'na': 'Namibia', - 'ne': 'Niger', - 'ng': 'Nigeria', - 'ni': 'Nicaragua', - 'nl': 'Netherlands', - 'no': 'Norway', - 'np': 'Nepal', - 'nz': 'New Zealand', - 'om': 'Oman', - 'pa': 'Panama', - 'pe': 'Peru', - 'pg': 'Papua New Guinea', - 'ph': 'Philippines', - 'pk': 'Pakistan', - 'pl': 'Poland', - 'pr': 'Puerto Rico', - 'ps': 'Palestine, State of', - 'pt': 'Portugal', - 'py': 'Paraguay', - 're': 'Reunion', - 'ro': 'Romania', - 'rs': 'Serbia', - 'ru': 'Russian Federation', - 'rw': 'Rwanda', - 'sa': 'Saudi Arabia', - 'sc': 'Seychelles', - 'sd': 'Sudan', - 'se': 'Sweden', - 'sg': 'Singapore', - 'sh': 'Saint Helena, Ascension and Tristan da Cunha', - 'si': 'Slovenia', - 'sk': 'Slovakia', - 'sl': 'Sierra Leone', - 'sm': 'San Marino', - 'sn': 'Senegal', - 'so': 'Somalia', - 'sr': 'Suriname', - 'st': 'Sao Tome and Principe', - 'sv': 'El Salvador', - 'sy': 'Syrian Arab Republic', - 'sz': 'Swaziland', - 'td': 'Chad', - 'tg': 'Togo', - 'th': 'Thailand', - 'tj': 'Tajikistan', - 'tl': 'Timor-Leste', - 'tm': 'Turkmenistan', - 'tn': 'Tunisia', - 'tr': 'Turkey', - 'tw': 'Taiwan, Province of China', - 'tz': 'Tanzania, United Republic of', - 'ua': 'Ukraine', - 'ug': 'Uganda', - 'us': 'United States', - 'uy': 'Uruguay', - 'uz': 'Uzbekistan', - 'va': 'Holy See (Vatican City State)', - 've': 'Venezuela, Bolivarian Republic of', - 'vn': 'Viet Nam', - 'ye': 'Yemen', - 'yt': 'Mayotte', - 'za': 'South Africa', - 'zm': 'Zambia', - 'zw': 'Zimbabwe' -} - - -EUR = ['be', 'de', 'ie', 'gr', 'es', 'fr', 'it', 'cy', 'lu', 'mt', 'nl', 'at', - 'pt', 'si', 'sk', 'fi', 'ee'] - -OECD = ['au', 'at', 'be', 'ca', 'cl', 'cz', 'dk', 'ee', 'fi', 'fr', 'de', 'gr', - 'hu', 'is', 'ie', 'il', 'it', 'jp', 'kr', 'lu', 'mx', 'nl', 'nz', 'no', - 'pl', 'pt', 'sk', 'si', 'es', 'se', 'ch', 'tr', 'gb', 'us'] - -NAFTA = ['ca', 'mx', 'us'] - -# Continents - -ASIA = [ - 'af', 'am', 'az', 'bh', 'bd', 'bt', 'bn', 'mn', 'mm', 'kh', 'cn', 'cy', - 'tl', 'ge', 'in', 'id', 'ir', 'iq', 'il', 'jp', 'jo', 'kz', 'kw', 'kg', - 'la', 'lb', 'my', 'mv', 'mn', 'np', 'kp', 'om', 'pk', 'ps', 'ph', 'ru', - 'sa', 'sg', 'lk', 'kr', 'sy', 'tw', 'tj', 'th', 'tr', 'tm', 'ae', 'uz', - 'vn', 'ye', 'mo', 'hk' -] - -EUROPE = [ - 'al', 'am', 'at', 'az', 'be', 'by', 'ba', 'bg', 'hr', 'cy', 'cz', 'dk', - 'ee', 'fi', 'fr', 'ge', 'de', 'gr', 'hu', 'is', 'ie', 'it', 'kz', 'lv', - 'li', 'lt', 'lu', 'mk', 'mt', 'md', 'mc', 'me', 'nl', 'no', 'pl', 'pt', - 'ro', 'ru', 'sm', 'rs', 'sk', 'si', 'es', 'se', 'ch', 'tr', 'ua', 'gb', - 'va' -] - -AFRICA = [ - 'dz', 'eg', 'ly', 'ma', 'sd', 'tn', 'eh', 'dj', 'er', 'et', 'so', 'bi', - 'ke', 'mg', 'mw', 'mu', 'yt', 'mz', 're', 'rw', 'sc', 'tz', 'ug', 'zm', - 'zw', 'ao', 'cm', 'cf', 'td', 'cd', 'cg', 'gq', 'ga', 'st', 'bw', 'ls', - 'na', 'za', 'sz', 'bj', 'bf', 'cv', 'gm', 'gh', 'gn', 'gw', 'ci', 'lr', - 'ml', 'mr', 'ne', 'ng', 'sh', 'sn', 'sl', 'tg' -] - -NORTH_AMERICA = [ - 'ca', 'mx', 'us', 'gl', 'cu', 'do', 'ht', 'jm', 'pr', 'bz', 'cr', 'sv', - 'gt', 'hn', 'ni', 'pa' -] - -SOUTH_AMERICA = [ - 'ar', 'bo', 'br', 'cl', 'co', 'ec', 'gf', 'gy', 'py', 'pe', 'sr', 'uy', - 've' -] - -OCEANIA = [ - 'au', 'nz', 'pg', 'gu', -] - -ANTARTICA = [ - 'aq' -] - -SUPRANATIONAL = { - 'oecd': OECD, - 'nafta': NAFTA, - 'eur': EUR, - - 'asia': ASIA, - 'europe': EUROPE, - 'africa': AFRICA, - 'north_america': NORTH_AMERICA, - 'south_america': SOUTH_AMERICA, - 'oceania': OCEANIA, - 'antartica': ANTARTICA -} - - -def set_countries(countries, clear=False): - if clear: - COUNTRIES.clear() - COUNTRIES.update(countries) diff --git a/pygal/test/__init__.py b/pygal/test/__init__.py index 8a576d4..fcfe525 100644 --- a/pygal/test/__init__.py +++ b/pygal/test/__init__.py @@ -19,7 +19,6 @@ import pygal from pygal.util import cut -from pygal.i18n import COUNTRIES from pygal.graph.map import BaseMap from decimal import Decimal diff --git a/pygal/test/test_config.py b/pygal/test/test_config.py index 38fbcd5..2a28b9b 100644 --- a/pygal/test/test_config.py +++ b/pygal/test/test_config.py @@ -18,8 +18,8 @@ # along with pygal. If not, see . from pygal import ( - Line, Dot, Pie, Treemap, Radar, Config, Bar, Funnel, Worldmap, - SupranationalWorldmap, Histogram, Gauge, Box, XY, + Line, Dot, Pie, Treemap, Radar, Config, Bar, Funnel, + Histogram, Gauge, Box, XY, Pyramid, HorizontalBar, HorizontalStackedBar, DateTimeLine, TimeLine, DateLine, TimeDeltaLine) from pygal.graph.map import BaseMap diff --git a/pygal/test/test_graph.py b/pygal/test/test_graph.py index 36261da..f9d8899 100644 --- a/pygal/test/test_graph.py +++ b/pygal/test/test_graph.py @@ -22,7 +22,6 @@ import pygal import uuid import sys import pytest -from pygal import i18n from pygal.graph.map import BaseMap from pygal.util import cut from pygal._compat import u diff --git a/pygal/test/test_map.py b/pygal/test/test_map.py deleted file mode 100644 index 6aae667..0000000 --- a/pygal/test/test_map.py +++ /dev/null @@ -1,87 +0,0 @@ -# -*- coding: utf-8 -*- -# This file is part of pygal -# -# A python svg graph plotting library -# Copyright © 2012-2014 Kozea -# -# This library is free software: you can redistribute it and/or modify it under -# the terms of the GNU Lesser General Public License as published by the Free -# Software Foundation, either version 3 of the License, or (at your option) any -# later version. -# -# This library is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -# details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with pygal. If not, see . - -from pygal import ( - Worldmap, SupranationalWorldmap) -from pygal.i18n import COUNTRIES, SUPRANATIONAL, set_countries -import operator -try: - from functools import reduce -except ImportError: - pass - -_COUNTRIES = dict(COUNTRIES) - - -def test_worldmap(): - set_countries(_COUNTRIES, True) - datas = {} - for i, ctry in enumerate(COUNTRIES): - datas[ctry] = i - - wmap = Worldmap() - wmap.add('countries', datas) - q = wmap.render_pyquery() - assert len( - q('.country.color-0') - ) == len(COUNTRIES) - assert 'France' in q('.country.fr').text() - - -def test_worldmap_i18n(): - set_countries(_COUNTRIES, True) - datas = {} - for i, ctry in enumerate(COUNTRIES): - datas[ctry] = i - - set_countries({'fr': 'Francia'}) - wmap = Worldmap() - wmap.add('countries', datas) - q = wmap.render_pyquery() - assert len( - q('.country.color-0') - ) == len(COUNTRIES) - assert 'Francia' in q('.country.fr').text() - - -def test_worldmap_i18n_clear(): - set_countries(_COUNTRIES, True) - wmap = Worldmap() - wmap.add('countries', dict(fr=12)) - set_countries({'fr': 'Frankreich'}, clear=True) - q = wmap.render_pyquery() - assert len( - q('.country.color-0') - ) == 1 - assert 'Frankreich' in q('.country.fr').text() - - -def test_supranationalworldmap(): - set_countries(_COUNTRIES, True) - datas = {} - for i, supra in enumerate(SUPRANATIONAL): - datas[supra] = i + 1 - - wmap = SupranationalWorldmap() - wmap.add('supra', datas) - q = wmap.render_pyquery() - assert len( - q('.country.color-0') - ) == len( - reduce(operator.or_, map(set, SUPRANATIONAL.values())))