def test_delete_root_node(self): # Add a few other roots to verify that they aren't affected Category(name='Preceding root').insert_at(Category.objects.get(id=1), 'left', save=True) Category(name='Following root').insert_at(Category.objects.get(id=1), 'right', save=True) self.assertEqual( get_tree_details(Category.tree.all()), tree_details("""11 - 1 0 1 2 1 - 2 0 1 20 2 1 2 1 2 7 3 2 2 2 3 4 4 2 2 2 5 6 5 1 2 1 8 13 6 5 2 2 9 10 7 5 2 2 11 12 8 1 2 1 14 19 9 8 2 2 15 16 10 8 2 2 17 18 12 - 3 0 1 2"""), 'Setup for test produced unexpected result') Category.objects.get(id=1).delete() self.assertEqual( get_tree_details(Category.tree.all()), tree_details("""11 - 1 0 1 2 12 - 3 0 1 2"""))
def test_delete_root_node(self): # Add a few other roots to verify that they aren't affected Category(name='Preceding root').insert_at(Category.objects.get(id=1), 'left', save=True) Category(name='Following root').insert_at(Category.objects.get(id=1), 'right', save=True) self.assertTreeEqual( Category.objects.all(), """ 11 - 1 0 1 2 1 - 2 0 1 20 2 1 2 1 2 7 3 2 2 2 3 4 4 2 2 2 5 6 5 1 2 1 8 13 6 5 2 2 9 10 7 5 2 2 11 12 8 1 2 1 14 19 9 8 2 2 15 16 10 8 2 2 17 18 12 - 3 0 1 2 """) Category.objects.get(id=1).delete() self.assertTreeEqual( Category.objects.all(), """ 11 - 1 0 1 2 12 - 3 0 1 2 """)
def test_delete_root_node(self, uuid4_mock): uuid4_mock.side_effect = iter( [char * 32 for char in string.hexdigits[2:16]]) # Add a few other roots to verify that they aren't affected Category(name='Another root').save() Category(name='Yet another root').save() self.assertTreeEqual( Category.objects.all(), """ 1 - 0 2 1 1 3 2 2 4 2 2 5 1 1 6 5 2 7 5 2 8 1 1 9 8 2 10 8 2 11 - 0 12 - 0 """) Category.objects.get(id=1).delete() self.assertTreeEqual( Category.objects.all(), """ 11 - 0 12 - 0 """)
def load_products(): '''Import products from API and add them in the database''' nbr = 0 for category in CATS: cat = Category(name=category) cat.save() payload = { 'action': 'process', 'tagtype_0': 'categories', 'tag_contains_0': 'contains', 'tag_0': category, 'countries': 'France', 'page_size': '250', 'json': 1 } reponse = requests.get('https://fr.openfoodfacts.org/cgi/search.pl', \ params=payload) data = reponse.json() try: for product in data['products']: try: name = product['product_name_fr'] except KeyError: try: name = product['product_name'] except KeyError: pass try: nutrition_grade = product['nutrition_grade_fr'] except KeyError: try: nutrition_grade = product['nutrition_grade'] except KeyError: pass url = product['url'] image = product['image_front_url'] try: nutrition_image = product["image_nutrition_small_url"] except KeyError: pass name = name.replace("\n", " ") name = name.replace("'", "'") product = Product(name=name, category=cat, \ nutrition_grade=nutrition_grade, url=url,\ img_url=image, nut_url=nutrition_image) nbr += 1 product.save() except KeyError: pass
def test_product_model(self): product = Product(name="Nokia", price=45.0, category=Category(name="smartphone")) db.session.add(product) db.session.commit() self.assertEqual(Product.query.count(), 1)
def create_app(config): app = Flask(__name__) app.config.from_object(config) CORS(app, supports_credentials=True) #load blueprints for bp_name in blueprints: bp = import_string(bp_name) app.register_blueprint(bp) #flask拓展 db.init_app(app) login_manager.init_app(app) bootstrap.init_app(app) with app.app_context(): db.create_all() #输入设备类别 from myapp.models import Category if Category.query.first() is None: for x in category_set: db.session.add(Category(type=x)) db.session.commit() return app
def newCategory(): ''' Add a new category''' if 'username' not in login_session: return redirect('/login') if request.method == 'POST': newCat = Category(name=request.form['name'], user_id=login_session['user_id']) session.add(newCat) session.commit() return redirect(url_for('showCategories')) else: return render_template('newCategory.html')
def category_create(request): alreadycreated = False created = False context = RequestContext(request) if request.method == 'POST': category_form = CategoryForm(data=request.POST) user = request.user if category_form.is_valid(): category_name = category_form.cleaned_data['name'] category_ex = Category.objects.filter(name=category_name) if category_ex.exists(): alreadycreated = True else: category = Category(name=category_name, user=user, pub_date=timezone.now()) category.save() created = True else: create = False alreadycreated = True else: category_form = CategoryForm() #Search bar methods if request.method == 'GET' and 'search_category_button' in request.GET: search_category = request.GET.get('search_category') category_name = request.GET.get('search_name_c') if (category_name is not None) and (search_category is not None): return search_bar(request, search_category, category_name) if request.method == 'GET' and 'search_user_button' in request.GET: user_name = request.GET.get('search_name') if user_name is not None: return user_search(request, user_name) return render_to_response('myapp/base_category_create.html', { 'alreadycreated': alreadycreated, 'created': created }, context)
def test_tree_id(self): opts = Category()._mptt_meta newtree = Category() setattr(newtree, opts.tree_id_attr, 234) newtree.save() self.assertEqual(getattr(newtree, opts.tree_id_attr), 234) newtree = Category() setattr(newtree, opts.tree_id_attr, 134) newtree.save() self.assertEqual(getattr(newtree, opts.tree_id_attr), 134) newtree = Category() setattr(newtree, opts.tree_id_attr, 135) newtree.save() self.assertEqual(getattr(newtree, opts.tree_id_attr), 135) newtree = Category() setattr(newtree, opts.tree_id_attr, 0) newtree.save() self.assertEqual(getattr(newtree, opts.tree_id_attr), 0)
def delete_categories(): db.delete(Category.all().fetch(100)) print_status("Categories are deleted succesfully.")
def index(request): lisUserProfile = {} # listParentCategory = Category.objects(parentCategory = None) lisCategory =Category.objects() # print('begin') # for user in listCategory: # if user.parentCategory is not None : # print(user.parentCategory.categoryName) # print('finish') if len(lisCategory) > 0: category=lisCategory[0] c = {'lisUserProfile':lisUserProfile,'listCategory':lisCategory,'category':category} else: c = {'lisUserProfile':lisUserProfile,'listCategory':lisCategory} if request.method == 'GET': return render(request, 'myapp/search-mentor.html', c) elif request.method == 'POST': try: lisUserProfile={} listCurriculumn={} lisCategory =Category.objects() user=User.objects.get(username=str(request.user)) mentor=Mentor.objects(user=user.id) keyword = request.POST['search'] parentCategory = request.POST['parentCategory']; childrenCategory =request.POST['childrenCategory']; #search data # users = User.objects(Q(first_name__icontains=keyword) | Q(last_name__icontains=keyword)) # lisUserProfile = UserProfile.objects(user_id__in=users,is_mentor=True) # categoryObject =Category.objects.get(id=childrenCategory) if len(mentor)>0: mt=mentor[0] listCurriculumn =Curriculumn.objects(category=childrenCategory ,name__icontains=keyword).order_by('published_date') else: listCurriculumn =Curriculumn.objects(category=childrenCategory ,name__icontains=keyword).order_by('published_date') # listCurriculumn =Curriculumn.objects(name__icontains=keyword) c = {'lisUserProfile':lisUserProfile,'listCurriculumn':listCurriculumn,'listCategory':lisCategory,'search':keyword,'parentCategory':parentCategory,'childrenCategory':childrenCategory} #get data from mongodb c.update(csrf(request)) c.update(context_processors.user(request)) return render_to_response("myapp/search-mentor.html", c) except Exception: lisUserProfile={} listCurriculumn={} lisCategory =Category.objects() user=User.objects.get(username=str(request.user)) mentor=Mentor.objects(user=user.id) keyword = request.POST['search'] parentCategory = request.POST['parentCategory']; if len(mentor)>0: mt=mentor[0] listCurriculumn =Curriculumn.objects(name__icontains=keyword).order_by('published_date') else: listCurriculumn =Curriculumn.objects(name__icontains=keyword).order_by('published_date') c = {'lisUserProfile':lisUserProfile,'listCurriculumn':listCurriculumn,'listCategory':lisCategory,'search':keyword,'parentCategory':parentCategory} c.update(csrf(request)) c.update(context_processors.user(request)) return render_to_response("myapp/search-mentor.html", c) return render(request, 'myapp/search-mentor.html', c)
def test_string_representation(self): expected = "A category" c1 = Category(name=expected) actual = str(c1) self.assertEqual(expected, actual)
def test_category_model(self): category = Category(name="smartphone") db.session.add(category) db.session.commit() self.assertEqual(Category.query.count(), 1)
def import_reviews_restaurants(): print('Indexing restaurants... look at progress:') aux = find_url_reviews_from_user() reviews = [] restaurants = [] categories = [] for line in aux: try: types = line[4] restaurantName = line[0] types = types.split(',') for food_type in types: name = food_type.strip() categories.append(Category(name=name)) except: e = sys.exc_info()[0] print("Error when creating a categpory: {0}".format(e)) categoriesnew = [] names = [] categories = Category.objects.filter() for category in categories: names.append(category.name) for category in categories: if category.name in names: names = names else: names.append(category.name) categoriesnew.append(category) Category.objects.bulk_create(categoriesnew) for line in aux: try: name = line[0] town = line[1] address = line[2] phone = line[3] food_types = line[4] special_diets = line[5] link = line[6] restaurants.append( Restaurant(name=name, town=town, address=address, phone=phone, special_diets=special_diets, link=link)) except: e = sys.exc_info()[0] print("Error when creating a restaurant: {0}".format(e)) names = [] restaurantsAll = Restaurant.objects.filter() for restaurant in restaurantsAll: names.append(restaurant.name) restaurantsNew = [] for restaurant in restaurants: if restaurant.name in names: names = names else: names.append(restaurant.name) restaurantsNew.append(restaurant) Restaurant.objects.bulk_create(restaurantsNew) for line in aux: types_food = line[4] types_food = types_food.split(',') for type_food in types_food: categories = Category.objects.filter() for category in categories: if type_food.strip() == category.name: if len(Restaurant.objects.filter(name=line[0])) > 0: Restaurant.objects.filter( name=line[0])[0].categories.add(category) for line in aux: try: rate = line[9] visit_date = line[10] title = line[7] description = line[8] restaurant_name = line[0] user_name = line[11] restaurant_id = find_db_restaurant(restaurant_name)[0][0] user_id = find_db_user(user_name)[0][0] reviews.append( Review(user_id=user_id, restaurant_id=restaurant_id, rate=rate, visit_date=visit_date, title=title, description=description)) except: e = sys.exc_info() print("Error when creating a review or user: {0}".format(e)) Review.objects.bulk_create(reviews)
def import_restaurants(): print('Indexing restaurants... look at progress:') restaurantsAux = find_url_restaurant() Restaurant.objects.all().delete() Category.objects.all().delete() restaurants = [] categories = [] for restaurantAux in restaurantsAux: try: types = restaurantAux[4] restaurantName = restaurantAux[0] types = types.split(',') for food_type in types: name = food_type.strip() categories.append(Category(name=name)) except: e = sys.exc_info()[0] print("Error when creating a categpory: {0}".format(e)) names = [] categoriesnew = [] for category in categories: if category.name in names: names = names else: names.append(category.name) categoriesnew.append(category) Category.objects.bulk_create(categoriesnew) for restaurantAux in restaurantsAux: try: name = restaurantAux[0] town = restaurantAux[1] address = restaurantAux[2] phone = restaurantAux[3] special_diets = restaurantAux[5] link = restaurantAux[6] restaurants.append( Restaurant(name=name, town=town, address=address, phone=phone, special_diets=special_diets, link=link)) except: e = sys.exc_info()[0] print("Error when creating a restaurant: {0}".format(e)) names = [] restaurantsNew = [] for restaurant in restaurants: if restaurant.name in names: names = names else: names.append(restaurant.name) restaurantsNew.append(restaurant) Restaurant.objects.bulk_create(restaurantsNew) for restaurantAux in restaurantsAux: types_food = restaurantAux[4] types_food = types_food.split(',') for type_food in types_food: categories = Category.objects.filter() for category in categories: if type_food.strip() == category.name: Restaurant.objects.filter( name=restaurantAux[0])[0].categories.add(category)