def test_stat_narrative_appears_in_french( stat_a_i, zambia, summary_url, rf ): G(StatValue, description=stat_a_i, country=zambia) # Add a translated narrative stat_a_i.translate('fr') stat_a_i.narrative = "Mais oui!" stat_a_i.save() # Get the French Zambia Page translation.activate('fr') request = rf.get(summary_url) request.user = G(User) request.LANGUAGE_CODE = 'en' view = CountrySummary.as_view() response = view(request, country=zambia) response.render() assert response.status_code == 200 soup = BeautifulSoup(response.content.decode('utf-8')) # Expect two rows of stats in NEW order stat_a_ii, stat_a_i narratives = soup.find_all(class_="narrative") assert len(narratives) == 1 assert "Mais oui!" in narratives[0].text
def test_data_needed_for_d3_is_not_using_localized_decimals( stat_a_i, zambia, summary_url, rf ): # The template localization will turn a value of 1.23 to 1,23. # This is awesome, except JSON can't parse it. G(StatValue, description=stat_a_i, country=zambia, value=1.23, year=2010) # Get the French Zambia Page translation.activate('fr') request = rf.get(summary_url) request.user = G(User) request.LANGUAGE_CODE = 'en' view = CountrySummary.as_view() response = view(request, country=zambia) response.render() assert response.status_code == 200 soup = BeautifulSoup(response.content.decode('utf-8')) # Find the data div for our stat value data_div = soup.find_all(class_="data") assert len(data_div) == 1 # Expect data in data_div can be loaded by json.loads data = data_div[0].get("data") try: json.loads(data) except ValueError: pytest.fail("JSON in data_div in French page is not valid") # Expect minY and maxY to also be in decimal format print data_div[0] miny = data_div[0].get("data-miny") maxy = data_div[0].get("data-maxy") assert "1.23" in miny assert "1.23" in maxy translation.deactivate()
def test_data_needed_for_d3_is_not_using_localized_decimals( stat_a_i, zambia, summary_url, rf): # The template localization will turn a value of 1.23 to 1,23. # This is awesome, except JSON can't parse it. G(StatValue, description=stat_a_i, country=zambia, value=1.23, year=2010) # Get the French Zambia Page translation.activate('fr') request = rf.get(summary_url) request.user = G(User) request.LANGUAGE_CODE = 'en' view = CountrySummary.as_view() response = view(request, country=zambia) response.render() assert response.status_code == 200 soup = BeautifulSoup(response.content.decode('utf-8')) # Find the data div for our stat value data_div = soup.find_all(class_="data") assert len(data_div) == 1 # Expect data in data_div can be loaded by json.loads data = data_div[0].get("data") try: json.loads(data) except ValueError: pytest.fail("JSON in data_div in French page is not valid") # Expect minY and maxY to also be in decimal format print data_div[0] miny = data_div[0].get("data-miny") maxy = data_div[0].get("data-maxy") assert "1.23" in miny assert "1.23" in maxy translation.deactivate()
def test_stat_narrative_appears_in_french(stat_a_i, zambia, summary_url, rf): G(StatValue, description=stat_a_i, country=zambia) # Add a translated narrative stat_a_i.translate('fr') stat_a_i.narrative = "Mais oui!" stat_a_i.save() # Get the French Zambia Page translation.activate('fr') request = rf.get(summary_url) request.user = G(User) request.LANGUAGE_CODE = 'en' view = CountrySummary.as_view() response = view(request, country=zambia) response.render() assert response.status_code == 200 soup = BeautifulSoup(response.content.decode('utf-8')) # Expect two rows of stats in NEW order stat_a_ii, stat_a_i narratives = soup.find_all(class_="narrative") assert len(narratives) == 1 assert "Mais oui!" in narratives[0].text