示例#1
0
文件: tests.py 项目: tadam93/sudsdb
    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")
示例#2
0
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()