diff --git a/apps/map/models.py b/apps/map/models.py index e2a6064..77e54d5 100644 --- a/apps/map/models.py +++ b/apps/map/models.py @@ -994,5 +994,23 @@ class CaseStudy(models.Model): """Gets the 11 character YouTube video ID from the video field.""" return parse.parse_qs(parse.urlparse(self.video).query)["v"][0] + def get_renewable_generation_detail(self): + """Prepend appropriate descriptive text when accessing renewable generation type.""" + + if self.generation_technology: + if self.generation_technology.endswith('WE'): + return _('Wind energy') + " – " + self.get_generation_technology_display() + elif self.generation_technology.endswith('PV'): + return _('Photovoltaic electricity') + " – " + self.get_generation_technology_display() + elif self.generation_technology.endswith('HYD'): + return _('Hydroelectric') + " – " + self.get_generation_technology_display() + elif self.generation_technology == 'OTHR': + return self.generation_technology_other + else: + return self.get_generation_technology_display() + + else: + return "" + class Meta: verbose_name_plural = 'case studies' diff --git a/apps/map/tests.py b/apps/map/tests.py index 7ce503c..0fa332d 100644 --- a/apps/map/tests.py +++ b/apps/map/tests.py @@ -1,3 +1,25 @@ from django.test import TestCase -# Create your tests here. +from .models import CaseStudy + +class CaseStudyTests(TestCase): + + def test_get_renewable_generation_detail_when_empty(self): + """get_renewable_generation_detail() should return the empty string.""" + case_study = CaseStudy() + self.assertIs(case_study.get_renewable_generation_detail(), "") + + def test_get_renewable_generation_detail_with_geo(self): + """get_renewable_generation_detail() should return just the description""" + case_study = CaseStudy(generation_technology='GEOT') + self.assertEqual(case_study.get_renewable_generation_detail(), "Geothermal electricity") + + def test_get_renewable_generation_detail_with_wind(self): + """get_renewable_generation_detail() should return the description prefixed with 'wind power'""" + case_study = CaseStudy(generation_technology='SSWE') + self.assertEqual(case_study.get_renewable_generation_detail(), "Wind energy – Small-scale (less than 500kW)") + + def test_get_renewable_generation_detail_with_other(self): + """get_renewable_generation_detail() should return the detail provided in .generation_technology_other""" + case_study = CaseStudy(generation_technology='OTHR', generation_technology_other='Warp drive') + self.assertEqual(case_study.get_renewable_generation_detail(), "Warp drive")