Exemplo n.º 1
0
def load_users():
    """Load users from u.user into database."""

    print("Users")

    # Delete all rows in table, so if we need to run this a second time,
    # we won't be trying to add duplicate users
    Log.query.delete()
    Dog.query.delete()
    User.query.delete()

    user1 = User(
        fname="Vaishali",
        lname="Cooner",
        email="*****@*****.**",
        password=
        "******",
        apt=1)
    user2 = User(fname="Heather",
                 lname="Mahan",
                 email="*****@*****.**",
                 password=123,
                 apt=1)

    # We need to add to the session or it won't ever be stored
    db.session.add_all([user1, user2])

    print("dogs")

    dog1 = Dog(dogname="Fluffy",
               age=3,
               breed="Havanese",
               gender="female",
               size="small",
               pic="1abc.jpg",
               user=user1)
    dog2 = Dog(dogname="Boris",
               age=2,
               breed="Minpin",
               gender="male",
               size="small",
               pic="2def.jpg",
               user=user2)

    # We need to add to the session or it won't ever be smovies (movie_id, title, released_at, imdb_url) VALUES (%(movie_id)s, %(title)s, %(released_at)s, %(imdb_url)s)'] [parameters: ({'movie_id': '1', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '2', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '3', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '4', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '5', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '6', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '7', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '8', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}  ... displaying 10 of 1681 total bound parameter sets ...  {'movie_id': '1681', 'title': None, 'released_at': datetime.datetime(1994, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '1682tored
    db.session.add_all([dog1, dog2])

    print("logs")

    log1 = Log(checkin='2018-10-09 2:40:10 PM',
               checkout='2018-10-09 2:30:10 PM',
               dog=dog1)
    log2 = Log(checkin='2018-10-09 2:42:20 PM',
               checkout='2018-10-09 2:58:10 PM',
               dog=dog2)
    # We need to add to the session or it won't ever be stored
    db.session.add_all([log1, log2])

    # Once we're done, we should commit our work
    db.session.commit()
Exemplo n.º 2
0
def load_dogs():

    Dog.query.delete()

    for row in open("seed_data/dogs.txt"):
        row = row.strip()
        dog_name, kennel_id, breed, gender, altered, age, intake_date, dog_pic = row.split(
            "|")

        if intake_date:
            intake_date = datetime.datetime.strptime(intake_date, "%d-%b-%Y")
        else:
            intake_date = None

        dog = Dog(dog_name=dog_name,
                  kennel_id=kennel_id,
                  breed=breed,
                  gender=gender,
                  altered=altered,
                  age=age,
                  intake_date=intake_date,
                  dog_pic=dog_pic)

        db.session.add(dog)

    db.session.commit()
Exemplo n.º 3
0
def create_dog(owner_email, dog_name, dog_bio, dog_img):
    dog = Dog(owner_email=owner_email,
              dog_name=dog_name,
              dog_bio=dog_bio,
              dog_img=dog_img)
    db.session.add(dog)
    db.session.commit()
    return dog
Exemplo n.º 4
0
 def map_to_model(cls, db_model):
     return Dog(name=db_model.name,
                link=db_model.link,
                image=db_model.image,
                age=db_model.age,
                weight=db_model.weight,
                gender=db_model.gender,
                breed=db_model.breed)
Exemplo n.º 5
0
def add_Product(name, price, picture_link, description):

    Dog_object = Dog(
        name=name,
        price=price,
        picture_link=picture_link,
        description=description)

    session.add(Dog_object)
    session.commit()
Exemplo n.º 6
0
def add_to_favorite():
    """Adds dog to favorites."""

    user_id = session["user_id"]
    petfinder_id = request.form.get("petfinder_id")
    shelter_id = request.form.get("shelter")
    adopted_status = request.form.get("status")
    img_url = request.form.get("url")
    breed = request.form.get("breed")
    age = request.form.get("age")
    name = request.form.get("name")
    ##TODO check that user is logged in
    dog_exists_in_db = Dog.query.get(petfinder_id)

    if dog_exists_in_db is None:

        new_dog = Dog(petfinder_id=petfinder_id,
                      shelter_id=shelter_id,
                      adopted_status=adopted_status,
                      img_url=img_url,
                      age=age,
                      breed=breed,
                      name=name)

        db.session.add(new_dog)
        db.session.commit()

    fave_exists_in_db = Favorite.query.filter_by(petfinder_id=petfinder_id,
                                                 user_id=user_id).first()

    if fave_exists_in_db is None:

        fave_dog = Favorite(petfinder_id=petfinder_id, user_id=user_id)

        db.session.add(fave_dog)
        db.session.commit()

        response = {'status': "success", 'id': petfinder_id}

    else:
        remove_fave_dog = Favorite.query.filter_by(
            user_id=user_id, petfinder_id=petfinder_id).one()

        db.session.delete(remove_fave_dog)
        db.session.commit()

        response = {'status': "successfully removed", 'id': petfinder_id}

    return jsonify(response)
Exemplo n.º 7
0
def add_dog():

    status = False

    name = request.args.get('name')
    sex = request.args.get('sex')
    availability = request.args.get('availability')
    description = request.args.get('description')

    if availability == "Available":
        status = True

    new_dog = Dog(name=name, sex=sex, status=status, description=description)

    db.session.add(new_dog)
    db.session.commit()

    return redirect("admin-home.html")
Exemplo n.º 8
0
class TestScraper(unittest.TestCase):

    domino = Dog(
        **{
            'name': 'Domino',
            'link': 'https://www.sfspca.org/adoptions/pet-details/39286176',
            'image':
            'https://www.sfspca.org/sites/default/files/styles/sf_animal_thumb_3col/public/images/animals/39286176-4cf10d31.jpg?itok=V9MiUXS1',
            'age': '2Y 0M',
            'weight': '57lbs. 5oz.',
            'gender': 'Male',
            'breed': 'Border Collie',
        })

    @vcr.use_cassette('test/fixtures/spca.yaml', record_mode='new_episodes')
    def test_scrape_spca(self):
        base_url = 'https://www.sfspca.org'
        url = base_url + "/adoptions/dogs"
        dogs = scraper.scrape_spca(url, base_url)
        self.assertEqual(self.domino.name, dogs[0].name)
Exemplo n.º 9
0
def scrape_spca(url, base_url):
    r = requests.get(url)
    soup = BeautifulSoup(r.text, 'html.parser')
    rows = soup.find_all("div", class_="views-row")
    dogs = []
    for row in rows:
        for child in row.children:
            if not child.name:
                continue
            if not child.find("a"):
                continue
            name = child.find("h2").string
            link = base_url + child.find("a").get("href")
            image = child.find("img").get("src")
            dog = Dog(name, link, image)

            resp = requests.get(dog.link)
            inner_soup = BeautifulSoup(resp.text, 'html.parser')

            age_div = inner_soup.find("div", "field-name-field-animal-age")
            if not age_div:
                continue
            dog.age = age_div.find("div", "field-item").string.strip()

            weight_div = inner_soup.find("div",
                                         "field-name-field-animal-weight")
            if not weight_div:
                continue
            dog.weight = weight_div.find("div", "field-item").string.strip()

            gender_div = inner_soup.find("div", "field-name-field-gender")
            if not gender_div:
                continue
            dog.gender = gender_div.find("div", "field-item").string.strip()

            breed_div = inner_soup.find(
                "div", "field-name-field-possible-primary-breed")
            if not breed_div:
                continue
            dog.breed = breed_div.find("div", "field-item").string.strip()

            DogService.save_dog(dog)
            dogs.append(dog)

    return dogs
Exemplo n.º 10
0
class TestDogService(TestCase):

    dog_model = Dog(
        **{
            'name': 'Domino',
            'link': 'https://www.sfspca.org/adoptions/pet-details/39286176',
            'image':
            'https://www.sfspca.org/sites/default/files/styles/sf_animal_thumb_3col/public/images/animals/39286176-4cf10d31.jpg?itok=V9MiUXS1',
            'age': '2Y 0M',
            'weight': '57lbs. 5oz.',
            'gender': 'Male',
            'breed': 'Border Collie',
        })

    @patch('repository.dog.DogRepository.save')
    @patch('repository.dog.DogRepository.get_by_name_and_breed')
    def test_save_dog_when_dog_doesnt_exist(self, mock_get_by_name_and_breed,
                                            mock_save):
        mock_get_by_name_and_breed.return_value = None
        DogService.save_dog(self.dog_model)

        mock_get_by_name_and_breed.assert_called_once_with(
            self.dog_model.name, self.dog_model.breed)

        mock_save.assert_called_once_with(self.dog_model)

    @patch('repository.dog.DogRepository.save')
    @patch('repository.dog.DogRepository.get_by_name_and_breed')
    def test_save_dog_when_dog_exists(self, mock_get_by_name_and_breed,
                                      mock_save):
        mock_get_by_name_and_breed.return_value = True
        DogService.save_dog(self.dog_model)

        mock_get_by_name_and_breed.assert_called_once_with(
            self.dog_model.name, self.dog_model.breed)

        mock_save.assert_not_called()
Exemplo n.º 11
0
def get_baddog_details(name):

    dog = Dog()
    dog.setName(name)
    dog.setChasesCats(True)
    return json.dumps(dog.__dict__)
Exemplo n.º 12
0
def add_dog():

    dog_name = request.form.get('dog_name')
    breed = request.form.get('breed')
    age = request.form.get('age')
    gender = request.form.get('gender')
    altered = request.form.get('altered')
    intake_date = request.form.get('intake_date')

    verify_values = [dog_name, breed, age, gender, altered, intake_date]

    #if form is left empty, flash error message
    for vals in verify_values:
        if vals == "" or None:
            flash('Please Complete Missing Information', 'error')
            return redirect('/thebarn')

    #checking if the dog already exists in the barn
    dog_exists = Dog.query.filter_by(dog_name=dog_name).first()

    #if the dog name already exists
    if dog_exists is not None:
        flash('Dog Name is Taken, Please Choose Another', 'error')
        return redirect("/thebarn")
    #checking if post request has image file part named 'new_dog_pic'
    if 'new_dog_pic' not in request.files:
        flash('Please Upload a Photo', 'error')
        return redirect('/thebarn')

    file = request.files['new_dog_pic']
    print type(file)

    if file.filename == '':
        flash('Please Upload a Photo', 'error')
        return redirect('/thebarn')

    #breaks the file name up to be renamed with dog's name and img type added at end
    file_arrary = file.filename.split(".")
    file.filename = dog_name + "." + file_arrary[-1]

    print file.filename
    # if user does not select file, browser also
    # submit a empty part without filename

    if file and allowed_file(file.filename):
        filename = secure_filename(file.filename)
        file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))

    new_dog_pic = file.filename

    #creates a new kennel for the new dog
    new_kennel = Kennel(dog_door=True, size='Small', indoor=True)

    db.session.add(new_kennel)
    db.session.commit()

    new_kennel = Kennel.query.order_by(Kennel.kennel_id.desc()).first()

    new_dog = Dog(dog_name=dog_name,
                  breed=breed,
                  age=int(age),
                  gender=gender,
                  kennel_id=new_kennel.kennel_id,
                  altered=altered,
                  intake_date=intake_date,
                  dog_pic=new_dog_pic)

    db.session.add(new_dog)
    db.session.commit()

    flash("You've added " + dog_name + " to the barn!")
    return redirect("/thebarn")
def showAll():
    #gets list of all Dog objects
    dog_in_db = Dog.getAllDogs()
    #calls view
    return view.showAllDogView(dog_in_db)