def setUp(self): ###### create Users ####### users = ['UserA', 'UserB', 'UserC', 'UserD'] for i in range(4): newUser = AUser(password='', last_login=timezone.now(), is_superuser=True, username=users[i], first_name='Firstname', last_name='Lastname', email='*****@*****.**', is_staff=True, is_active=True, date_joined=timezone.now()) newUser.save() testDBModel.testUsers.append(newUser) testDBModel.testUsersID.append(newUser.pk) ###### add Category ###### category1 = Category(name="hats") testDBModel.testCategory.append(category1) category1.save() ###### add product ###### addProducts = ["ProductA", "ProductB", "ProductC", "ProductD"] for i in range(4): # # add products newOne = Product(category=category1, name=addProducts[i], brand='brand', url='url', photo='photo', price=1.0, description='') newOne.save() testDBModel.testProducts.append(newOne) ##### ## add comments ###### for i in range(4): newOne = Comment(product=testDBModel.testProducts[i], owner=testDBModel.testUsers[i], content="null", time = timezone.now()) newOne.save() testDBModel.testComments.append(newOne) # add to wishlist first for i in range(4): newOne = WishList(product=testDBModel.testProducts[i], owner=testDBModel.testUsers[i]) newOne.save()
def test_image_resize_success( self, mock_default_category: Category, INITIAL_SIZE: Tuple[int, int], FILE_EXTENTION: str, ): """ Test that the resizeImage function works as expected when saving a Category object """ mock_default_category.image = f"dummy_image_base_name.{FILE_EXTENTION}" create_dummy_png_image( mock_default_category.image.name, IMAGE_SIZE=INITIAL_SIZE ) check_image_attributes( mock_default_category.image, size_check=INITIAL_SIZE, ext_check=f".{FILE_EXTENTION}", ) mock_default_category.save() check_image_attributes( mock_default_category.image, size_check=BaseModelMixin.CROP_SIZE, ext_check=".jpg", ) shutil.rmtree(Path(MEDIA_URL))
def feed_data_to_database(self): recipes = self.get_matching_recipes() for recipe in recipes: recipe_obj = Recipe(title=recipe[10], date_published=recipe[2], rating=recipe[8]) recipe_obj.save() for category_name in recipe[1]: category = None try: category = Category.objects.get(name=category_name) except: category = Category(name=category_name) category.save() rc = RecipeCategory(recipe=recipe_obj, category=category) rc.save() for id, direction_item in enumerate(recipe[4]): direction = Direction(content=direction_item, recipe=recipe_obj, order=(id + 1)) direction.save() for detailed_ingredient in recipe[6]: ingr = Ingredient.objects.get(name=detailed_ingredient[0]) dg = DetailedIngredient(recipe=recipe_obj, name=detailed_ingredient[1], ingredient=ingr) dg.save()
def handle(self, *args, **options): print('Loading category') Category.objects.all().delete() Journal.objects.all().delete() names = [ 'ЖЕНСКИЕ', 'МУЖСКИЕ', 'ДЕТСКИЕ', 'ДОМ И СЕМЬЯ', 'АВТО', 'СПОРТ', 'РЕЛИГИЯ', 'ОБЩЕСТВО', 'ПОЛИТИКА', 'БИЗНЕС', 'ФИНАНСЫ', 'НАУЧНО-ПОПУЛЯРНЫЕ' ] for name in names: c = Category() c.name = name c.save() print('Saving %s' % name) journal_list = [ 'Наука и техника', 'Здоровье', 'Моделист-конструктор', 'Лиза', 'Прибой', 'Забой', 'Внуки и правнуки', 'В мире муравья', 'Крышка стола', 'Восемь' ] cnt = 0 for jname in journal_list: cnt += 1 j = Journal() j.name = jname j.save() j.category.add(c) path = os.path.join(settings.BASE_DIR, 'init_data', 'journal', f'{cnt}.jpg') with open(path, 'rb') as doc_file: j.default_cover.save(f'{cnt}.jpeg', File(doc_file), save=True) for ni in range(1, 20): name = f'выпуск {ni}' i = Issue() i.name = name i.journal = j i.save() for pi in range(1, 10): p = IssuePage() p.paper = i p.page = pi p.save() path = os.path.join(settings.BASE_DIR, 'init_data', 'journal', f'{pi}.jpg') with open(path, 'rb') as doc_file: p.file_low.save(f'{pi}.jpeg', File(doc_file), save=True) p.file_middle.save(f'{pi}.jpeg', File(doc_file), save=True) p.file_high.save(f'{pi}.jpeg', File(doc_file), save=True)
def save_mock_category(monkeypatch, category: Category) -> None: """ Mock the resizeImage() function to prevent the need of creating and processing dummy images when saving Category objects. """ mock_resize_image = Mock(return_value=category.image) monkeypatch.setattr(Category, "resizeImage", mock_resize_image) category.save() mock_resize_image.assert_called_once_with(category.image)
def setUp(self): ###### create Users ####### users = ['UserA', 'UserB', 'UserC', 'UserD'] for i in range(4): newUser = AUser(password='', last_login=timezone.now(), is_superuser=True, username=users[i], first_name='Firstname', last_name='Lastname', email='*****@*****.**', is_staff=True, is_active=True, date_joined=timezone.now()) newUser.save() testDBModel.testUsers.append(newUser) testDBModel.testUsersID.append(newUser.pk) ###### add Category ###### category1 = Category(name="hats") testDBModel.testCategory.append(category1) category1.save() category2 = Category(name="glasses") testDBModel.testCategory.append(category2) category2.save() user = User(id=testDBModel.testUsersID[0],user_id=testDBModel.testUsersID[0], user_image="profile1.jpg") user.save() ###### add product ###### addProducts = ["ProductA", "ProductB", "ProductC", "ProductD"] for i in range(4): # # add products newOne = Product(category=category1, name=addProducts[i], brand='brand', url='url', photo='photo', price=1.0, description='') newOne.save() testDBModel.testProducts.append(newOne) ###### add custom product ##### newAdded = Added(owner = testDBModel.testUsers[0], product = testDBModel.testProducts[0]) newAdded.save() newAdded = Added(owner = testDBModel.testUsers[1], product = testDBModel.testProducts[1]) newAdded.save() ###### add temp product ###### tempP = TempProduct(owner = testDBModel.testUsers[0], overlay = 'overlay1ol.jpg', token = '1', category = testDBModel.testCategory[0]) tempP.save() tempP = TempProduct(owner = testDBModel.testUsers[1], overlay = 'overlay2ol.jpg', token = '2', category = testDBModel.testCategory[0]) tempP.save() testDBModel.testOverlay = ['overlay1ol.jpg', 'overlay2ol.jpg'] ##### ## add comments ###### for i in range(4): newOne = Comment(product=testDBModel.testProducts[i], owner=testDBModel.testUsers[i], content="null", time = timezone.now()) newOne.save() testDBModel.testComments.append(newOne) # add to wishlist first for i in range(4): newOne = WishList(product=testDBModel.testProducts[i], owner=testDBModel.testUsers[i]) newOne.save() # add to FitList: for i in range(4): newOne = FitList(product = testDBModel.testProducts[i], owner = testDBModel.testUsers[i]) newOne.save()
def test_image_resize_called( self, monkeypatch, mock_default_category: Category ): """ Ensures the resizeImage function is called when saving a category """ mock_resize_image = Mock(return_value=mock_default_category.image) monkeypatch.setattr(Category, "resizeImage", mock_resize_image) mock_default_category.save() mock_resize_image.assert_called_once_with(mock_default_category.image)
def test_image_resize_failed( self, mock_default_category: Category, FILE_EXTENTION: str, EXCEPTION: Exception, ): """ Test the expected Exception is raised when an invalid file format is submitted. Clean up created test images """ mock_default_category.image = f"dummy_image_base_name.{FILE_EXTENTION}" create_dummy_file(mock_default_category.image.name) with pytest.raises(EXCEPTION): mock_default_category.save() shutil.rmtree(Path(MEDIA_URL))
def userpanel(request): if request.user.is_authenticated: user = request.user if 'addNewCategoryButton' in request.POST: newCategory = request.POST.get('addcategory', '') if newCategory != "": if not Category.objects.filter( nameOfCategory=newCategory).exists(): categoryNewModel = Category(nameOfCategory=newCategory) categoryNewModel.save() elif 'deleteCategoryButton' in request.POST: newCategory = request.POST.get('addcategory', '') if newCategory != "": Category.objects.filter(nameOfCategory=newCategory).delete() elif 'newUserNameButton' in request.POST: newUserName = request.POST.get('newUserName', '') if newUserName != "": saveNewUserName = User.objects.get(id=user.pk) saveNewUserName.username = newUserName saveNewUserName.save() elif 'newNameButton' in request.POST: newName = request.POST.get('newName', '') if newName != "": saveNewUserName = User.objects.get(id=user.pk) saveNewUserName.first_name = newName saveNewUserName.save() elif 'newUserSurnameButton' in request.POST: newUserSurname = request.POST.get('newUserSurname', '') if newUserSurname != "": saveNewUserName = User.objects.get(id=user.pk) saveNewUserName.last_name = newUserSurname saveNewUserName.save() elif 'changePasswordButton' in request.POST: changePassword = request.POST.get('changePassword', '') if changePassword != "": saveNewPassword = User.objects.get(id=user.pk) saveNewPassword.set_password(changePassword) saveNewPassword.save() return render(request, "main/userpanel.html", {'user': user}) else: return redirect('/home/')
def each_article(self, category, url_list): main = Category(name=category) main.save() for link in url_list: soup = self.soup(link) div = soup.find("div", {"class": "bdaia-post-content"}) p_list = div.find_all("p") description = [] for p in p_list: description.append(p.get_text()) self.article.append(u''.join(description).encode('utf-8')) full = zip(self.title_list, self.href_list, self.description, self.article) for i in full: item = News(item_title=i[0], item_link=i[1], item_short_descr=i[2], article=i[3], category=main) item.save() i = []
def test_send_notification_is_called_on_save( self, monkeypatch, mock_default_category: Category, mock_email_host_user: str, ): """ Ensures the send_email_notification_to_users function is called when saving a category """ mock_resize_image = Mock(return_value=mock_default_category.image) monkeypatch.setattr(Category, "resizeImage", mock_resize_image) mock_send_email_notification = Mock() monkeypatch.setattr( Category, "send_email_notification_to_users", mock_send_email_notification, ) mock_default_category.save() mock_send_email_notification.assert_called_once()
def create_category(self, categoryName): #TODO: Occupation? parent = Category(name=categoryName, occupation=categoryName) parent.save() subcategoryList = subcategories[categoryName] for subcategoryName in subcategoryList: child = Category(name=subcategoryName, occupation=subcategoryName, parent=parent) child.save() parent.children.add(child) parent.save()
def setUpDb(request): User.objects.all().delete() Category.objects.all().delete() Product.objects.all().delete() WishList.objects.all().delete() FitList.objects.all().delete() Comment.objects.all().delete() Added.objects.all().delete() TempProduct.objects.all().delete() glasses = Category(name='glasses') hats = Category(name='hats') headphones = Category(name='headphones') glasses.save() hats.save() headphones.save() rayban = Product(category = glasses, name='rayban glasses', brand = 'rayban',url='www.rayban.com', price = 129.9, description='stylish rayban', overlay='raybanol.png', photo='rayban.jpg') nike = Product(category = glasses, name='nike glasses', brand = 'nike', url='www.nike.com', photo='nike.jpg',overlay='nikeol.png', price = 99.9, description = 'sporty nike') adidas = Product(category = hats, name='adidas cap', brand = 'adidas', url='www.adidas.com', photo='addidas.jpg', overlay='addidasol.png', price = 56.9, description ='adidas cap!', yoffset = -0.58) levis = Product(category = hats, name='levis hat', brand = 'levis', url='www.levis.com', photo='levis.jpg', overlay='levisol.png', price = 67.9, description ='levis hat!', yoffset = -0.58) beats = Product(category = headphones, name='beats headphones', brand = 'beats', url='www.beats.com', photo='beats.jpg', overlay='beatsol.png', price = 256.9, description='stylish headphones!', yoffset = -0.15) sony = Product(category = headphones, name='sony headphones', brand = 'sony', url='www.sony.com', photo='sony.jpg', overlay="sonyol.png", price = 399.9, description='high quality headphones!', yoffset = -0.15) rayban.save() nike.save() adidas.save() levis.save() beats.save() sony.save() comment = Comment(product = rayban, owner = AUser.objects.get(pk=1), time=timezone.now(), content="Very nice glasses!") comment.save() wish = WishList(owner=AUser.objects.get(pk=1), product=rayban) wish.save() fit = FitList(owner=AUser.objects.get(pk=1), product=adidas) fit.save() return HttpResponse("Success!")
def create(self, validated_data): category = Category(name=validated_data['name']) category.save() return category
def test_ensure_views_are_positive(self): cat = Category(name='test',views=-1, likes=0, slug='Random Category String') cat.save() self.assertEqual((cat.views >= 0), True) self.assertEqual(cat.slug, 'random-category-string')
def setUpDb(request): User.objects.all().delete() Category.objects.all().delete() Product.objects.all().delete() WishList.objects.all().delete() FitList.objects.all().delete() Comment.objects.all().delete() Added.objects.all().delete() TempProduct.objects.all().delete() glasses = Category(name='glasses') hats = Category(name='hats') headphones = Category(name='headphones') glasses.save() hats.save() headphones.save() rayban = Product(category=glasses, name='rayban glasses', brand='rayban', url='www.rayban.com', price=129.9, description='stylish rayban', overlay='raybanol.png', photo='rayban.jpg') nike = Product(category=glasses, name='nike glasses', brand='nike', url='www.nike.com', photo='nike.jpg', overlay='nikeol.png', price=99.9, description='sporty nike') adidas = Product(category=hats, name='adidas cap', brand='adidas', url='www.adidas.com', photo='addidas.jpg', overlay='addidasol.png', price=56.9, description='adidas cap!', yoffset=-0.58) levis = Product(category=hats, name='levis hat', brand='levis', url='www.levis.com', photo='levis.jpg', overlay='levisol.png', price=67.9, description='levis hat!', yoffset=-0.58) beats = Product(category=headphones, name='beats headphones', brand='beats', url='www.beats.com', photo='beats.jpg', overlay='beatsol.png', price=256.9, description='stylish headphones!', yoffset=-0.15) sony = Product(category=headphones, name='sony headphones', brand='sony', url='www.sony.com', photo='sony.jpg', overlay="sonyol.png", price=399.9, description='high quality headphones!', yoffset=-0.15) rayban.save() nike.save() adidas.save() levis.save() beats.save() sony.save() comment = Comment(product=rayban, owner=AUser.objects.get(pk=1), time=timezone.now(), content="Very nice glasses!") comment.save() wish = WishList(owner=AUser.objects.get(pk=1), product=rayban) wish.save() fit = FitList(owner=AUser.objects.get(pk=1), product=adidas) fit.save() return HttpResponse("Success!")
def handle(self, *args, **options): restaurant_count = options["count"] # keep track of used names, streets etc. in the variables below, # so we can prevent duplicates names = [] streets = [] cities = [] # XXX factorize into smaller functions for item in range(restaurant_count): print "generate restaurant %d" % (item + 1) r = Restaurant() r.name = gen_unique_name(names, restaurant_names) r.save() print "generate address" a = Address(country=random.choice(_countries)) a.street = gen_unique_name(streets, street_names) a.street_no = random.randint(1, 100) a.zip = random.randint(1000, 100000) a.city = gen_unique_name(cities, city_names) a.restaurant = r a.save() count = random.randint(5, 25) print "generate %d tables" % count for i in range(1, 1 + count): t = Table() t.restaurant = r t.no = i t.save() print "add supported payment methods" for _ in range(2, len(_payment_methods)): method = random.choice(_payment_methods) if method not in r.payment_method.all(): r.payment_method.add(method) r.save() print "generate menu" m = Menu() m.currency = random.choice(_currencies) m.language = _languages[2] m.restaurant = r m.save() m.translations.add(_languages[0]) m.translations.add(_languages[1]) m.save() items = [] _cat_names = [] count = random.randint(3, 12) itemid = 1 print "generate %d categories" % count for j in range(1, 1 + count): c = Category() c.menu = m c.ordering = j c.view = random.choice(_views) c.save() count = random.randint(4, 20) # i18n stuff name = gen_unique_name(_cat_names, category_names) for lang in _languages: c18n = CategoryI18n() c18n.category = c c18n.language = lang c18n.name = name if lang.abbr != "en": c18n.name += "(%s)" % lang.abbr c18n.save() print "generate %d items" % count for _ in range(1, count): item = Item() item.no = itemid itemid += 1 item.category = c item.price = "%.2f" % random.uniform( 1, 110) # 2 decimal points item.save() item.image.save("item%d.jpg" % item.id, random.choice(_pictures), save=True) count = random.randint(0, 8) # "assign %d allergens" % count for k in range(count): a = random.choice(_allergens).allergen if a in ItemAllergen.objects.filter(item=item, allergen=a): continue traces = bool(random.randint(0, 1)) ItemAllergen.objects.get_or_create( item=item, allergen=a, traces=traces)[0].save() item.save() # i18n stuff name = gen_unique_name(items, food_names) for lang in _languages: i18n = ItemI18n() i18n.item = item i18n.language = lang i18n.name = name if lang.abbr != "en": i18n.name += "(%s)" % lang.abbr i18n.description = "Very delicious %s. It is made with love and all the care it is needed to make a great %s." % ( name, name) i18n.save() print self.stdout.write('Successfully added %d restaurants' % restaurant_count)
def settings(request): # Proper way to handle multiple forms: # https://stackoverflow.com/questions/1395807/proper-way-to-handle-multiple-forms-on-one-page-in-django # TODO: Use a look-up dictionary to optimize the code active = request.GET.get('tab', '') next_link = request.GET.get('next', '') print(request.POST) if request.method == 'POST': if 'password-change' in request.POST: change_password_form = PasswordChangeForm(request.user, request.POST, prefix='password-change') if change_password_form.is_valid(): user = change_password_form.save() update_session_auth_hash(request, user) # Important! # Otherwise the user’s auth session will be invalidated and she/he will have to log in again. sweetify.success(request, "You successfully changed your password", icon='success', toast=True, position='bottom-end', ) private_info_form = PrivateInformationForm(instance=request.user.userprofile, prefix='private-info') public_info_form = PublicInformationForm(instance=request.user.userprofile, prefix='public-info') image_form = ProfileImageForm(request.POST, request.FILES, instance=request.user.userprofile, prefix='profile-image') elif 'private-info' in request.POST: private_info_form = PrivateInformationForm(request.POST, instance=request.user.userprofile, prefix='private-info') if private_info_form.is_valid(): private_info_form.save() sweetify.success(request, "You successfully updated your profile", icon='success', toast=True, position='bottom-end', ) else: sweetify.error(request, 'Please correct the error below', icon="error", toast=True, position="bottom-end") change_password_form = PasswordChangeForm(request.user, prefix='password-change') public_info_form = PublicInformationForm(instance=request.user.userprofile, prefix='public-info') image_form = ProfileImageForm(request.POST, request.FILES, instance=request.user.userprofile, prefix='profile-image') elif 'public-info-description' in request.POST: public_info_form = PublicInformationForm(request.POST, request.FILES, instance=request.user.userprofile, prefix='public-info') if public_info_form.is_valid(): description = public_info_form.cleaned_data['description'] public_info_form.save() most_common = get_most_common(description) most_common_words = [] most_common_words_numbers = [] for w in most_common: most_common_words.append(w[0]) most_common_words_numbers.append(w[1]) request.user.userprofile.most_common_words = most_common_words request.user.userprofile.most_common_words_numbers = most_common_words_numbers request.user.userprofile.save() sweetify.success(request, "You successfully updated your profile", icon='success', toast=True, position='bottom-end', ) tags = list(set(request.GET.get('tags', '').split(","))) # Delete all previous skills Specialism.objects.filter(feedbacker=request.user).delete() # Save each tag instance to database for tag in tags: if tag == "": continue category_record = Category.objects.filter(name=tag) if not category_record: category_record = Category(name=tag) category_record.save() else: category_record = category_record[0] tag_record = Specialism(feedbacker=request.user, category=category_record) tag_record.save() change_password_form = PasswordChangeForm(request.user, prefix='password-change') private_info_form = PrivateInformationForm(instance=request.user.userprofile, prefix='private-info') image_form = ProfileImageForm(request.POST, request.FILES, instance=request.user.userprofile, prefix='profile-image') elif 'notifications' in request.POST: feedback_updates = request.POST.get('FeedbackUpdates', '') == 'on' messages = request.POST.get('Messages', '') == 'on' smart_recommendations = request.POST.get('SmartRecommendations', '') == 'on' if feedback_updates: request.user.userprofile.feedback_updates_notifications = True else: request.user.userprofile.feedback_updates_notifications = False if messages: request.user.userprofile.messages_mail_notifications = True else: request.user.userprofile.messages_mail_notifications = False if smart_recommendations: request.user.userprofile.smart_recommendations_mail_notifications = True else: request.user.userprofile.smart_recommendations_mail_notifications = False request.user.userprofile.save() sweetify.success(request, "You successfully updated your profile", icon='success', toast=True, position='bottom-end', ) change_password_form = PasswordChangeForm(request.user, prefix='password-change') public_info_form = PublicInformationForm(instance=request.user.userprofile, prefix='public-info') private_info_form = PrivateInformationForm(instance=request.user.userprofile, prefix='private-info') image_form = ProfileImageForm(request.POST, request.FILES, instance=request.user.userprofile, prefix='profile-image') elif 'notifications2' in request.POST: messages2 = request.POST.get('Messages2', '') == 'on' smart_recommendations2 = request.POST.get('SmartRecommendations2', '') == 'on' if messages2: request.user.userprofile.messages_notifications = True else: request.user.userprofile.messages_notifications = False if smart_recommendations2: request.user.userprofile.smart_recommendations_notifications = True else: request.user.userprofile.smart_recommendations_notifications = False request.user.userprofile.save() sweetify.success(request, "You successfully updated your profile", icon='success', toast=True, position='bottom-end', ) change_password_form = PasswordChangeForm(request.user, prefix='password-change') public_info_form = PublicInformationForm(instance=request.user.userprofile, prefix='public-info') private_info_form = PrivateInformationForm(instance=request.user.userprofile, prefix='private-info') image_form = ProfileImageForm(request.POST, request.FILES, instance=request.user.userprofile, prefix='profile-image') elif "billing" in request.POST: cardholder_name = request.POST.get('name', '') card_number = request.POST.get('number', '') card_expiry_date = request.POST.get('expiry', '') try: card_expiry_month, card_expiry_year = card_expiry_date.split(" / ")[0], card_expiry_date.split(" / ")[1] except: card_expiry_month, card_expiry_year = card_expiry_date.split("/")[0], card_expiry_date.split("/")[1] cvv = request.POST.get('cvc', '') premium = request.POST.get('premium', '') # Find the payment method of that client payment_token = gateway.payment_method.find(f"{request.user.username}") token = payment_token.token # Update the payment method check = gateway.payment_method.update(token, { "cardholder_name": cardholder_name, "cvv": cvv, "expiration_month": card_expiry_month, "expiration_year": card_expiry_year, "number": card_number }) # Check if the payment details are correct if not str(check).startswith("<Error"): request.user.userprofile.payment_method = True request.user.userprofile.save() sweetify.success(request, "You successfully updated your profile", icon='success', toast=True, position='bottom-end', ) if premium: return redirect("try-premium-page") else: print(check) sweetify.error(request, 'Wrong Card Details', icon="error", toast=True, position="bottom-end") change_password_form = PasswordChangeForm(request.user, prefix='password-change') public_info_form = PublicInformationForm(instance=request.user.userprofile, prefix='public-info') private_info_form = PrivateInformationForm(instance=request.user.userprofile, prefix='private-info') image_form = ProfileImageForm(request.POST, request.FILES, instance=request.user.userprofile, prefix='profile-image') elif "cancel-subscription" in request.POST: curr_user = UserProfile.objects.get(user=request.user) gateway.subscription.cancel(curr_user.subscription_id) # Cancel the subscription in Braintree curr_user.premium = False curr_user.trial_used = True curr_user.save() sweetify.success(request, "You successfully canceled your subscription", icon='success', toast=True, position='bottom-end', ) change_password_form = PasswordChangeForm(request.user, prefix='password-change') public_info_form = PublicInformationForm(instance=request.user.userprofile, prefix='public-info') private_info_form = PrivateInformationForm(instance=request.user.userprofile, prefix='private-info') image_form = ProfileImageForm(request.POST, request.FILES, instance=request.user.userprofile, prefix='profile-image') elif 'profile-image-x' in request.POST: image_form = ProfileImageForm(request.POST, request.FILES, instance=request.user.userprofile, prefix='profile-image') if image_form.is_valid(): image_form.save() change_password_form = PasswordChangeForm(request.user, prefix='password-change') private_info_form = PrivateInformationForm(instance=request.user.userprofile, prefix='private-info') public_info_form = PublicInformationForm(instance=request.user.userprofile, prefix='public-info') else: change_password_form = PasswordChangeForm(request.user, prefix='password-change') private_info_form = PrivateInformationForm(instance=request.user.userprofile, prefix='private-info') public_info_form = PublicInformationForm(instance=request.user.userprofile, prefix='public-info') image_form = ProfileImageForm(request.POST, request.FILES, instance=request.user.userprofile, prefix='profile-image') user_skills_ids = Specialism.objects.filter(feedbacker=request.user) user_skills = [str(skill.category) for skill in user_skills_ids] if request.user.userprofile.premium: next_billing_day = gateway.subscription.find(request.user.userprofile.subscription_id).next_billing_date else: next_billing_day = None context = {'change_password_form': change_password_form, 'private_info_form': private_info_form, 'public_info_form': public_info_form, 'image_form': image_form, 'active': active, 'email': request.user.email, 'user_skills': user_skills, 'new_messages': request.user.userprofile.messages_mail_notifications, 'feedback_updates': request.user.userprofile.feedback_updates_notifications, 'smart_recommendations': request.user.userprofile.smart_recommendations_mail_notifications, 'new_messages2': request.user.userprofile.messages_notifications, 'smart_recommendations2': request.user.userprofile.smart_recommendations_notifications, 'next_link': next_link, "is_premium": request.user.userprofile.premium, "trial_used": request.user.userprofile.trial_used, "next_billing_date": next_billing_day, 'title': '| Settings' } return render(request, 'users/settings.html', context)
def populate_test_categories(self): # Root categories auto = Category(name="Automobiles") auto.save() health = Category(name="Health") health.save() pets = Category(name="Pets") pets.save() finance = Category(name="Finance") finance.save() cleaning = Category(name="Cleaning") cleaning.save() # Child categories modifications = Category(name="Modifications", parent=auto) modifications.save() maintenance = Category(name="Maintenance", parent=auto) maintenance.save() chiropractic = Category(name="Chiropractic", parent=health) chiropractic.save() petGrooming = Category(name="Grooming", parent=pets) petGrooming.save() petSitting = Category(name="Pet Sitting", parent=pets) petSitting.save() accounting = Category(name="Accounting", parent=finance) accounting.save() investing = Category(name="Investing", parent=finance) investing.save() homeCleaning = Category(name="Home", parent=cleaning) homeCleaning.save() officeCleaning = Category(name="Office", parent=cleaning) officeCleaning.save()
def create_test_category(self, name): category = Category(id=1, name=name) category.save() return category
def setUp(self): ###### create Users ####### users = ['UserA', 'UserB', 'UserC', 'UserD'] for i in range(4): newUser = AUser(password='', last_login=timezone.now(), is_superuser=True, username=users[i], first_name='Firstname', last_name='Lastname', email='*****@*****.**', is_staff=True, is_active=True, date_joined=timezone.now()) newUser.save() testDBModel.testUsers.append(newUser) testDBModel.testUsersID.append(newUser.pk) ###### add Category ###### category1 = Category(name="hats") testDBModel.testCategory.append(category1) category1.save() category2 = Category(name="glasses") testDBModel.testCategory.append(category2) category2.save() ###### add product ###### addProducts = ["ProductA", "ProductB", "ProductC", "ProductD"] for i in range(4): # # add products newOne = Product(category=category1, name=addProducts[i], brand='brand', url='url', photo='photo', price=1.0, description='') newOne.save() testDBModel.testProducts.append(newOne) ###### add custom product ##### newAdded = Added(owner=testDBModel.testUsers[0], product=testDBModel.testProducts[0]) newAdded.save() newAdded = Added(owner=testDBModel.testUsers[1], product=testDBModel.testProducts[1]) newAdded.save() ###### add temp product ###### tempP = TempProduct(owner=testDBModel.testUsers[0], overlay='overlay1ol.jpg', token='1', category=testDBModel.testCategory[0]) tempP.save() tempP = TempProduct(owner=testDBModel.testUsers[1], overlay='overlay2ol.jpg', token='2', category=testDBModel.testCategory[0]) tempP.save() testDBModel.testOverlay = ['overlay1ol.jpg', 'overlay2ol.jpg'] ##### ## add comments ###### for i in range(4): newOne = Comment(product=testDBModel.testProducts[i], owner=testDBModel.testUsers[i], content="null", time=timezone.now()) newOne.save() testDBModel.testComments.append(newOne) # add to wishlist first for i in range(4): newOne = WishList(product=testDBModel.testProducts[i], owner=testDBModel.testUsers[i]) newOne.save() # add to FitList: for i in range(4): newOne = FitList(product=testDBModel.testProducts[i], owner=testDBModel.testUsers[i]) newOne.save()
def create(self, validated_data): category = Category(**validated_data) category.save() return category
def test_can_create_new_category(self): category = Category() category.name = 'New category' category.save() self.assertIn(category, Category.objects.all())