コード例 #1
0
ファイル: routes.py プロジェクト: nyu-devops/lab-bluemix-cf
def list_pets():
    """Returns all of the Pets"""
    app.logger.info("Request for pet list")

    pets = []

    category = request.args.get("category")
    name = request.args.get("name")
    available = request.args.get("available")
    gender = request.args.get("gender")

    if category:
        app.logger.info("Filtering by category: %s", category)
        pets = Pet.find_by_category(category)
    elif name:
        app.logger.info("Filtering by name:%s", name)
        pets = Pet.find_by_name(name)
    elif available:
        app.logger.info("Filtering by available: %s", available)
        is_available = available.lower() in ["yes", "y", "true", "t", "1"]
        pets = Pet.find_by_availability(is_available)
    elif gender:
        app.logger.info("Filtering by gender: %s", gender)
        pets = Pet.find_by_gender(gender)
    else:
        pets = Pet.all()

    results = [pet.serialize() for pet in pets]
    app.logger.info("Returning %d pets", len(results))
    return make_response(jsonify(results), status.HTTP_200_OK)
コード例 #2
0
def list_pets():
    """ Returns all of the Pets """
    app.logger.info('Request to list Pets...')
    pets = []
    category = request.args.get('category')
    name = request.args.get('name')
    available = request.args.get('available')
    if available:   # convert to boolean
        available = available.lower() in ['true', 'yes', '1']
    if category:
        app.logger.info('Find by category: %s', category)
        pets = Pet.find_by_category(category)
    elif name:
        app.logger.info('Find by name: %s', name)
        pets = Pet.find_by_name(name)
    elif available:
        app.logger.info('Find by available: %s', available)
        pets = Pet.find_by_availability(available)
    else:
        app.logger.info('Find all')
        pets = Pet.all()

    app.logger.info('[%s] Pets returned', len(pets))
    results = [pet.serialize() for pet in pets]
    return make_response(jsonify(results), status.HTTP_200_OK)
コード例 #3
0
 def setUpClass(cls):
     """This runs once before the entire test suite"""
     app.config["TESTING"] = True
     app.config["DEBUG"] = False
     app.config["SQLALCHEMY_DATABASE_URI"] = DATABASE_URI
     app.logger.setLevel(logging.CRITICAL)
     Pet.init_db(app)
コード例 #4
0
ファイル: test_pets.py プロジェクト: hi348/lab-flask-bdd
 def test_find_by_availability(self):
     """ Find a Pet by Availability """
     Pet("fido", "dog", False).save()
     Pet("kitty", "cat", True).save()
     pets = Pet.find_by_availability(True)
     self.assertEqual(len(pets), 1)
     self.assertEqual(pets[0].name, "kitty")
コード例 #5
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)
コード例 #6
0
 def test_find_by_name(self):
     """ Find a Pet by Name """
     Pet(name="fido", category="dog", available=True).create()
     Pet(name="kitty", category="cat", available=False).create()
     pets = Pet.find_by_name("kitty")
     self.assertEqual(pets[0].category, "cat")
     self.assertEqual(pets[0].name, "kitty")
     self.assertEqual(pets[0].available, False)
コード例 #7
0
 def test_find_by_category(self):
     """ Find a Pet by Category """
     Pet("fido", "dog").save()
     Pet("kitty", "cat").save()
     pets = Pet.find_by_category("cat")
     self.assertNotEqual(len(pets), 0)
     self.assertEqual(pets[0].category, "cat")
     self.assertEqual(pets[0].name, "kitty")
コード例 #8
0
 def test_find_by_name(self):
     """ Find a Pet by Name """
     Pet("fido", "dog").create()
     Pet("kitty", "cat").create()
     pets = Pet.find_by_name("fido")
     self.assertNotEqual(len(pets), 0)
     self.assertEqual(pets[0].category, "dog")
     self.assertEqual(pets[0].name, "fido")
コード例 #9
0
 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")
コード例 #10
0
 def test_delete_a_pet(self):
     """ Delete a Pet """
     pet = PetFactory()
     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)
コード例 #11
0
ファイル: test_pets.py プロジェクト: tpof314/devops-workshop
 def test_find_by_category(self):
     """ Find Pets by Category """
     Pet(name="fido", category="dog", available=True).save()
     Pet(name="kitty", category="cat", available=False).save()
     pets = Pet.find_by_category("cat")
     self.assertEqual(pets[0].category, "cat")
     self.assertEqual(pets[0].name, "kitty")
     self.assertEqual(pets[0].available, False)
コード例 #12
0
 def test_find_pet(self):
     """ Find a Pet by id """
     Pet(0, "fido", "dog").save()
     Pet(0, "kitty", "cat").save()
     pet = Pet.find(2)
     self.assertIsNot(pet, None)
     self.assertEqual(pet.id, 2)
     self.assertEqual(pet.name, "kitty")
コード例 #13
0
 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")
コード例 #14
0
 def test_for_case_insensitive(self):
     """ Test for Case Insensitive Search """
     Pet(0, "Fido", "DOG").save()
     Pet(0, "Kitty", "CAT").save()
     pets = Pet.find_by_name("fido")
     self.assertNotEqual(len(pets), 0)
     self.assertEqual(pets[0].name, "Fido")
     pets = Pet.find_by_category("cat")
     self.assertNotEqual(len(pets), 0)
     self.assertEqual(pets[0].category, "CAT")
コード例 #15
0
 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)
     pet = Pet(name="fido", category="dog", available=False)
     self.assertEqual(pet.available, False)
コード例 #16
0
 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)
コード例 #17
0
 def test_list_all_pets(self):
     """List Pets in the database"""
     pets = Pet.all()
     self.assertEqual(pets, [])
     # Create 5 Pets
     for i in range(5):
         pet = PetFactory()
         pet.create()
     # See if we get back 5 pets
     pets = Pet.all()
     self.assertEqual(len(pets), 5)
コード例 #18
0
 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")
コード例 #19
0
 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"]))
コード例 #20
0
 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)
コード例 #21
0
ファイル: test_pets.py プロジェクト: tpof314/devops-workshop
 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)
コード例 #22
0
ファイル: test_pets.py プロジェクト: yf1357/lab-flask-tdd
 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)
コード例 #23
0
 def test_find_by_availability(self):
     """ Find Pets by Category """
     Pet(name="fido", category="dog", available=True).create()
     Pet(name="kitty", category="cat", available=False).create()
     Pet(name="fifi", category="dog", available=True).create()
     pets = Pet.find_by_availability(False)
     pet_list = [pet for pet in pets]
     self.assertEqual(len(pet_list), 1)
     self.assertEqual(pets[0].name, "kitty")
     self.assertEqual(pets[0].category, "cat")
     pets = Pet.find_by_availability(True)
     pet_list = [pet for pet in pets]
     self.assertEqual(len(pet_list), 2)
コード例 #24
0
 def test_find_pet(self):
     """ Find a Pet by ID """
     pets = PetFactory.create_batch(3)
     for pet in pets:
         pet.create()
     logging.debug(pets)
     # make sure they got saved
     self.assertEqual(len(Pet.all()), 3)
     # find the 2nd pet in the list
     pet = Pet.find(pets[1].id)
     self.assertIsNot(pet, None)
     self.assertEqual(pet.id, pets[1].id)
     self.assertEqual(pet.name, pets[1].name)
     self.assertEqual(pet.available, pets[1].available)
コード例 #25
0
ファイル: test_pets.py プロジェクト: yf1357/lab-flask-tdd
 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)
コード例 #26
0
ファイル: service.py プロジェクト: rudi116/lab-flask-rest
def list_pets():
    """ Returns all of the Pets """
    app.logger.info("Request for pet list")
    pets = []
    category = request.args.get("category")
    name = request.args.get("name")
    if category:
        pets = Pet.find_by_category(category)
    elif name:
        pets = Pet.find_by_name(name)
    else:
        pets = Pet.all()

    results = [pet.serialize() for pet in pets]
    return make_response(jsonify(results), status.HTTP_200_OK)
コード例 #27
0
 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)
コード例 #28
0
 def test_find_by_gender(self):
     """ Find Pets by Gender """
     Pet(name="fido", category="dog", available=True, gender=Gender.Male).create()
     Pet(
         name="kitty", category="cat", available=False, gender=Gender.Female
     ).create()
     Pet(name="fifi", category="dog", available=True, gender=Gender.Male).create()
     pets = Pet.find_by_gender(Gender.Female)
     pet_list = [pet for pet in pets]
     self.assertEqual(len(pet_list), 1)
     self.assertEqual(pets[0].name, "kitty")
     self.assertEqual(pets[0].category, "cat")
     pets = Pet.find_by_gender(Gender.Male)
     pet_list = [pet for pet in pets]
     self.assertEqual(len(pet_list), 2)
コード例 #29
0
 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)
コード例 #30
0
 def test_deserialize_bad_available(self):
     """Test deserialization of bad available attribute"""
     test_pet = PetFactory()
     data = test_pet.serialize()
     data["available"] = "true"
     pet = Pet()
     self.assertRaises(DataValidationError, pet.deserialize, data)