def test_relationship_1(self) : app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///:memory:' db.drop_all() db.create_all() coors_light = Beer(name='Coors Light', description="Taste's like urine.", is_organic="N", abv=11.1, ibu=30) austin_brew = Brewery(name="Austin's Brew House") db.session.add(coors_light) db.session.add(austin_brew) self.assertEqual(austin_brew.beers, []) austin_brew.beers = [coors_light] db.session.commit() self.assertEqual(austin_brew.beers[0].name, "Coors Light")
def insert_brewery(brewery_list, loc_dict) : for brewery in brewery_list : # query for beers and make the relationship beer_inventory = db.session.query(Beer).filter(Beer.scrape_brew_id == brewery.get("id")).all() if len(beer_inventory) == 0: continue if brewery.get("name") is not None: string_name = unicodedata.normalize('NFKD', brewery.get("name")).encode('ascii', 'ignore') else : for row in beer_inventory: db.session.query(Beer).filter(Beer.beer_id == row.beer_id).delete() db.session.commit() continue if brewery.get("description") is not None : string_desc = unicodedata.normalize('NFKD', brewery.get("description")).encode('ascii','ignore') else : for row in beer_inventory: db.session.query(Beer).filter(Beer.beer_id == row.beer_id).delete() db.session.commit() continue if brewery.get("images") is not None : brew_icon = brewery.get("images").get("icon") brew_image = brewery.get("images").get("large") else : for row in beer_inventory: db.session.query(Beer).filter(Beer.beer_id == row.beer_id).delete() db.session.commit() continue loc_obj = loc_dict.get(brewery.get("id")) brew_loc = None if loc_obj is not None and loc_obj.get("locality") is not None and loc_obj.get("region") is not None: brew_loc = loc_obj.get("locality") brew_loc += ", " brew_loc += loc_obj.get("region") else : for row in beer_inventory: db.session.query(Beer).filter(Beer.beer_id == row.beer_id).delete() db.session.commit() continue if brew_loc is not None: brew_loc = unicodedata.normalize('NFKD', brew_loc).encode('ascii','ignore') else : for row in beer_inventory: db.session.query(Beer).filter(Beer.beer_id == row.beer_id).delete() db.session.commit() continue if brewery.get("website") is None or brewery.get("isOrganic") is None or brewery.get("established") is None: for row in beer_inventory: db.session.query(Beer).filter(Beer.beer_id == row.beer_id).delete() db.session.commit() continue # add the data and commit b = Brewery(name=string_name, description=string_desc, website=brewery.get("website"), is_organic=brewery.get("isOrganic"), icon=brew_icon, image=brew_image, established=brewery.get("established"), location=brew_loc) # for beer in db.session.query(Beer).filter(Beer.scrape_brew_id == brewery.get("id")) : # b.beers.append(beer) # for brew_beer_id in brewery.get("beerIds") : # b.beers.append(db.session.query(Beer).filter(Beer.beer_id == brew_beer_id)) b.beers = beer_inventory db.session.add(b) db.session.commit() if brewery.get("name") is not None: logger.info("brewery: " + brewery.get("name") + " populated with " + str(len(beer_inventory)) + " beers") # test = Brewery(name="Bob") # db.session.add(test) db.session.commit()