def test_planet_to_dict_no_id(self): p = Planet(id=1, planet_id=2, name='Test Planet', diameter=123456, rotation_period=1, orbital_period=365, gravity='1', population=6000000, climate='tundra,desert,rainforest', terrain='flat', surface_water=8) p_dict = p.to_dict() self.assertEqual(p.id, 1) self.assertNotIn('id', p_dict)
def test_planet_to_dict(self): expected_dict = { 'planet_id': 2, 'name': 'Test Planet', 'diameter': 123456, 'rotation_period': 1, 'orbital_period': 365, 'gravity': 1, 'population': 6000000, 'climate': 'tundra,desert,rainforect', 'terrain': 'flat', 'surface_water': 8 } p = Planet(id=1, **expected_dict) p_dict = p.to_dict() self.assertEqual(p.id, 1) self.assertEqual(p_dict, expected_dict)
def get_by_id(request, id): try: planet = Planet.objects.get(pk=id) except Planet.DoesNotExist as dne: success, response = get_planet_by_id(id) planet = Planet(planet_id=id, name=response['name'], diameter=int(response['diameter']), rotation_period=int(response['rotation_period']), orbital_period=int(response['orbital_period']), gravity=response['gravity'], population=int(response['population']), climate=response['climate'], terrain=response['terrain'], surface_water=int(response['surface_water'])) planet.save() if request.GET.get("q", None) == "imperial": return JsonResponse(planet.to_imperial(), status=200) else: return JsonResponse(planet.to_dict(), status=200)