def test_primary_program(self): """Some trip programs always use the same icon.""" mrp_trip = factories.TripFactory.build( trip_type=enums.TripType.TRAD_CLIMBING.value, program=enums.Program.SCHOOL_OF_ROCK.value, ) self.assertEqual(icons.fa_icon_for_trip(mrp_trip), 'school') service_trip = factories.TripFactory.build( trip_type=enums.TripType.HIKING.value, program=enums.Program.SERVICE.value) self.assertEqual(icons.fa_icon_for_trip(service_trip), 'hands-helping')
def test_special_trip_types(self): """Most trip types have their own custom icon.""" ice_trip = factories.TripFactory.build( trip_type=enums.TripType.ICE_CLIMBING.value, program=enums.Program.WINTER_SCHOOL.value, ) self.assertEqual(icons.fa_icon_for_trip(ice_trip), 'icicles') ultimate_trip = factories.TripFactory.build( name="Ultimate Pickup", trip_type=enums.TripType.ULTIMATE.value, program=enums.Program.NONE.value, ) self.assertEqual(icons.fa_icon_for_trip(ultimate_trip), 'compact-disc')
def test_no_known_icon(self): """We don't always have an icon for the program/trip type combo.""" other_trip = factories.TripFactory.build( trip_type=enums.TripType.OTHER.value, program=enums.Program.NONE.value) self.assertEqual(icons.fa_icon_for_trip(other_trip), '')
def test_every_program_has_an_icon(self): """Each specific program has a corresponding icon.""" # Specifically, we enumerate each program in the mapping self.assertCountEqual(enums.Program, icons.ICON_BY_PROGRAM) # Test the public interface, though for program in enums.Program: trip = factories.TripFactory.build( trip_type=enums.TripType.NONE.value, program=program.value) icon = icons.fa_icon_for_trip(trip) if trip.program_enum == enums.Program.NONE: self.assertEqual(icon, '') else: self.assertTrue(icon)
def test_fall_back_on_program(self): """When lacking an icon for the trip type, we can fall back on program.""" circus_trip = factories.TripFactory.build( trip_type=enums.TripType.NONE.value, program=enums.Program.CIRCUS.value) self.assertEqual(icons.fa_icon_for_trip(circus_trip), 'users')