def test_deserialize_bad_available(self): """It should not deserialize a bad available attribute""" test_pet = PetFactory() data = test_pet.serialize() data["available"] = "true" pet = Pet() self.assertRaises(DataValidationError, pet.deserialize, data)
def test_key_error_on_update(self, bad_mock): """ Test KeyError on update """ bad_mock.side_effect = KeyError() pet = Pet("fido", "dog", False) pet.save() pet.name = 'Fifi' pet.update()
def test_deserialize_bad_gender(self): """It should not deserialize a bad gender attribute""" test_pet = PetFactory() data = test_pet.serialize() data["gender"] = "male" # wrong case pet = Pet() self.assertRaises(DataValidationError, pet.deserialize, data)
def create_pets(): """ Creates a Pet This endpoint will create a Pet based the data in the body that is posted """ app.logger.info('Request to Create a Pet...') data = {} # Check for form submission data if request.headers.get('Content-Type') == 'application/x-www-form-urlencoded': app.logger.info('Getting data from form submit') data = { 'name': request.form['name'], 'category': request.form['category'], 'available': True } else: check_content_type('application/json') app.logger.info('Getting json data from API call') data = request.get_json() app.logger.info(data) pet = Pet() pet.deserialize(data) pet.save() app.logger.info('Pet with new id [%s] saved!', pet.id) message = pet.serialize() location_url = url_for('get_pets', pet_id=pet.id, _external=True) return make_response(jsonify(message), status.HTTP_201_CREATED, {'Location': location_url})
def create_pets(): """ Creates a Pet This endpoint will create a Pet based the data in the body that is posted or data that is sent via an html form post. """ app.logger.info('Request to create a Pet') data = {} # Check for form submission data if request.headers.get('Content-Type') == 'application/x-www-form-urlencoded': app.logger.info('Processing FORM data') data = { 'name': request.form['name'], 'category': request.form['category'], 'available': request.form['available'].lower() in ['true', '1', 't'] } else: app.logger.info('Processing JSON data') data = request.get_json() pet = Pet() pet.deserialize(data) pet.save() message = pet.serialize() return make_response(jsonify(message), status.HTTP_201_CREATED, {'Location': url_for('get_pets', pet_id=pet.id, _external=True)})
def test_delete_a_pet(self): """ Delete a Pet """ pet = Pet("fido", "dog") pet.save() self.assertEqual(len(Pet.all()), 1) # delete the pet and make sure it isn't in the database pet.delete() self.assertEqual(len(Pet.all()), 0)
def test_deserialize_lower_case_gender(self): """Test deserialization with lower case gender""" test_pet = PetFactory() data = test_pet.serialize() data["gender"] = "male" # lower case pet = Pet() pet.deserialize(data) self.assertEqual(pet.gender, Gender.MALE)
def test_create_a_pet(self): """ Create a pet and assert that it exists """ pet = Pet(name="fido", category="dog", available=True) self.assertTrue(pet != None) self.assertEqual(pet.id, None) self.assertEqual(pet.name, "fido") self.assertEqual(pet.category, "dog") self.assertEqual(pet.available, True)
def test_delete_a_pet(self): """ Delete a Pet """ pet = Pet(name="fido", category="dog", available=True) pet.create() self.assertEqual(len(Pet.all()), 1) # delete the pet and make sure it isn't in the database pet.delete() self.assertEqual(len(Pet.all()), 0)
def test_create_a_pet(self): """ Create a pet and assert that it exists """ pet = Pet("fido", "dog", False) self.assertNotEqual(pet, None) self.assertEqual(pet.id, None) self.assertEqual(pet.name, "fido") self.assertEqual(pet.category, "dog") self.assertEqual(pet.available, False)
def test_vcap_services(self): """ Test if VCAP_SERVICES works """ Pet.init_db() self.assertIsNotNone(Pet.client) Pet("fido", "dog", True).save() pets = Pet.find_by_name("fido") self.assertNotEqual(len(pets), 0) self.assertEqual(pets[0].name, "fido")
def test_deserialize_a_pet(self): """ Deserialize a Pet """ data = {"id":1, "name": "kitty", "category": "cat", "available": True} pet = Pet(data['id']) pet.deserialize(data) self.assertNotEqual(pet, None) self.assertEqual(pet.id, 1) self.assertEqual(pet.name, "kitty") self.assertEqual(pet.category, "cat")
def test_create_a_pet(self): """Create a pet and assert that has correct attributes""" pet = Pet(name="Fido", category="dog", available=True, gender=Gender.MALE) self.assertTrue(pet is not None) self.assertEqual(pet.id, None) self.assertEqual(pet.name, "Fido") self.assertEqual(pet.category, "dog") self.assertEqual(pet.available, True) self.assertEqual(pet.gender, Gender.MALE) pet = Pet(name="Fido", category="dog", available=False, gender=Gender.FEMALE) self.assertEqual(pet.available, False) self.assertEqual(pet.gender, Gender.FEMALE)
def test_deserialize_with_bad_gender(self): """Deserialize a Pet with bad gender data""" data = { "name": "fido", "category": "dog", "available": True, "gender": "foo" } pet = Pet() self.assertRaises(DataValidationError, pet.deserialize, data)
def test_create_a_pet(self): """It should Create a pet and assert that it exists""" pet = Pet(name="Fido", category="dog", available=True, gender=Gender.MALE) self.assertEqual(str(pet), "<Pet 'Fido' id=[None]>") self.assertTrue(pet is not None) self.assertEqual(pet.id, None) self.assertEqual(pet.name, "Fido") self.assertEqual(pet.category, "dog") self.assertEqual(pet.available, True) self.assertEqual(pet.gender, Gender.MALE) pet = Pet(name="Fido", category="dog", available=False, gender=Gender.FEMALE) self.assertEqual(pet.available, False) self.assertEqual(pet.gender, Gender.FEMALE)
def test_deserialize_a_pet(self): """ Test deserialization of a Pet """ data = {"id": 1, "name": "kitty", "category": "cat", "available": True} pet = Pet() pet.deserialize(data) self.assertNotEqual(pet, None) self.assertEqual(pet.id, None) self.assertEqual(pet.name, "kitty") self.assertEqual(pet.category, "cat") self.assertEqual(pet.available, True)
def test_serialize_a_pet(self): """ Serialize a Pet """ pet = Pet(0, "fido", "dog") data = pet.serialize() self.assertNotEqual(data, None) self.assertIn('id', data) self.assertEqual(data['id'], 0) self.assertIn('name', data) self.assertEqual(data['name'], "fido") self.assertIn('category', data) self.assertEqual(data['category'], "dog")
def test_serialize_a_pet(self): """ Serialize a Pet """ pet = Pet("fido", "dog", False) data = pet.serialize() self.assertNotEqual(data, None) self.assertNotIn('_id', data) self.assertIn('name', data) self.assertEqual(data['name'], "fido") self.assertIn('category', data) self.assertEqual(data['category'], "dog") self.assertIn('available', data) self.assertEqual(data['available'], False)
def test_add_a_pet(self): """ Create a pet and add it to the database """ pets = Pet.all() self.assertEqual(pets, []) pet = Pet(name="fido", category="dog", available=True) self.assertTrue(pet != None) self.assertEqual(pet.id, None) pet.create() # Asert that it was assigned an id and shows up in the database self.assertEqual(pet.id, 1) pets = Pet.all() self.assertEqual(len(pets), 1)
def test_deserialize_a_pet(self): """It should de-serialize a Pet""" data = PetFactory().serialize() pet = Pet() pet.deserialize(data) self.assertNotEqual(pet, None) self.assertEqual(pet.id, None) self.assertEqual(pet.name, data["name"]) self.assertEqual(pet.category, data["category"]) self.assertEqual(pet.available, data["available"]) self.assertEqual(pet.gender.name, data["gender"]) self.assertEqual(pet.birthday, date.fromisoformat(data["birthday"]))
def test_serialize_a_pet(self): """ Test serialization of a Pet """ pet = Pet(name="fido", category="dog", available=False) data = pet.serialize() self.assertNotEqual(data, None) self.assertIn('id', data) self.assertEqual(data['id'], None) self.assertIn('name', data) self.assertEqual(data['name'], "fido") self.assertIn('category', data) self.assertEqual(data['category'], "dog") self.assertIn('available', data) self.assertEqual(data['available'], False)
def test_serialize_a_pet(self): """ Test serialization of a Pet """ pet = Pet(name="fido", category="dog", available=False) data = pet.serialize() self.assertNotEqual(data, None) self.assertIn("id", data) self.assertEqual(data["id"], None) self.assertIn("name", data) self.assertEqual(data["name"], "fido") self.assertIn("category", data) self.assertEqual(data["category"], "dog") self.assertIn("available", data) self.assertEqual(data["available"], False)
def create_pets(): """ Creates a Pet This endpoint will create a Pet based the data in the body that is posted """ app.logger.info("Request to create a pet") check_content_type("application/json") pet = Pet() pet.deserialize(request.get_json()) pet.create() message = pet.serialize() location_url = url_for("get_pets", pet_id=pet.id, _external=True) return make_response(jsonify(message), status.HTTP_201_CREATED, {"Location": location_url})
def test_update_a_pet(self): """ Update a Pet """ pet = Pet("fido", "dog", True) pet.save() self.assertNotEqual(pet.id, None) # Change it an save it pet.category = "k9" pet.save() # Fetch it back and make sure the id hasn't changed # but the data did change pets = Pet.all() self.assertEqual(len(pets), 1) self.assertEqual(pets[0].category, "k9") self.assertEqual(pets[0].name, "fido")
def test_update_a_pet(self): """ Update a Pet """ pet = Pet(name="fido", category="dog", available=True) pet.create() self.assertEqual(pet.id, 1) # Change it an update it pet.category = "k9" pet.update() self.assertEqual(pet.id, 1) # Fetch it back and make sure the id hasn't changed # but the data did change pets = Pet.all() self.assertEqual(len(pets), 1) self.assertEqual(pets[0].category, "k9")
def test_add_a_pet(self): """ Create a pet and add it to the database """ pets = Pet.all() self.assertEqual(pets, []) pet = Pet("fido", "dog", True) self.assertNotEqual(pet, None) self.assertEqual(pet.id, None) pet.save() # Asert that it was assigned an id and shows up in the database self.assertNotEqual(pet.id, None) pets = Pet.all() self.assertEqual(len(pets), 1) self.assertEqual(pets[0].name, "fido") self.assertEqual(pets[0].category, "dog") self.assertEqual(pets[0].available, True)
def test_add_a_pet(self): """It should Create a pet and add it to the database""" pets = Pet.all() self.assertEqual(pets, []) pet = Pet(name="Fido", category="dog", available=True, gender=Gender.MALE) self.assertTrue(pet is not None) self.assertEqual(pet.id, None) pet.create() # Assert that it was assigned an id and shows up in the database self.assertIsNotNone(pet.id) pets = Pet.all() self.assertEqual(len(pets), 1)
def post(self): """ Creates a Pet This endpoint will create a Pet based the data in the body that is posted """ app.logger.info('Request to Create a Pet') pet = Pet() app.logger.debug('Payload = %s', api.payload) pet.deserialize(api.payload) pet.create() app.logger.info('Pet with new id [%s] saved!', pet.id) location_url = api.url_for(PetResource, pet_id=pet.id, _external=True) return pet.serialize(), status.HTTP_201_CREATED, { 'Location': location_url }
def test_deserialize_a_pet(self): """ Deserialize a Pet """ data = { "name": "kitty", "category": "cat", "available": True, "gender": Gender.Female.name } pet = Pet() pet.deserialize(data) self.assertNotEqual(pet, None) self.assertEqual(pet.id, None) self.assertEqual(pet.name, "kitty") self.assertEqual(pet.category, "cat") self.assertEqual(pet.available, True) self.assertEqual(pet.gender, Gender.Female)
def test_deserialize_a_pet(self): """Test deserialization of a Pet""" data = { "name": "Kitty", "category": "cat", "available": True, "gender": "FEMALE", } pet = Pet() pet.deserialize(data) self.assertNotEqual(pet, None) self.assertEqual(pet.id, None) self.assertEqual(pet.name, "Kitty") self.assertEqual(pet.category, "cat") self.assertEqual(pet.available, True) self.assertEqual(pet.gender, Gender.FEMALE)