Ejemplo n.º 1
0
    def test_thumbnail_are_generated_on_save(self):
        product = Product(
            name='The Cathedral and the bazaar',
            price=Decimal('10.00'),
        )
        product.save()

        with open('main/fixtures/the-cathedral-the-bazaar.jpg', 'rb') as f:
            image = ProductImage(
                product=product,
                image=ImageFile(f, name='tctb.jpg'),
            )
            with self.assertLogs('main', level='INFO') as cm:
                image.save()
                self.assertGreaterEqual(len(cm.output), 1)
                image.refresh_from_db()

                with open(
                        'main/fixtures/the-cathedral-the-bazaar.thumb.jpg',
                        'rb',
                ) as f:
                    expected_content = f.read()
                    self.assertEqual(expected_content, image.thumbnail.read())
                    image.thumbnail.delete(save=False)
                    image.image.delete(save=False)
def addProduct(user, id, unit_name, unit_value, price, quantity):

    print 'Entro BL addProduct'

    product = Product();

    productActual = Product.objects.get(id=id)

    farm = Farm.objects.all()\
        .only('name','latitude','longitude','size','provider__user')\
        .filter(provider__user=user)

    product.image_url = productActual.image_url
    product.description = productActual.description
    product.name = productActual.name
    product.price = price
    product.unit_value = unit_value
    product.unit_name = unit_name
    product.farm = farm[0]
    product.quantity = quantity

    product.save()

    listProduct = get_products_farm(user);

    return listProduct
Ejemplo n.º 3
0
    def test_product_price(self):
        product = Product()
        product.product_type = '00'
        product_group = ProductGroup()
        product_group.name = 'Bouncy'
        product_group.save()
        product.product_group = product_group
        product.code = 'BBALL'
        product.name = 'Bouncy Ball'
        product.save()

        product_sellingprice = ProductSellingprice()
        product_sellingprice.product = product
        product_sellingprice.commencing_date = datetime.strptime('2012-02-01:00:00:00', '%Y-%m-%d:%H:%M:%S')
        product_sellingprice.set_date = datetime.strptime('2012-01-01:00:00:00', '%Y-%m-%d:%H:%M:%S')
        product_sellingprice.price = Money(4.00, 'EUR')
        product_sellingprice.save()

        product_sellingprice = ProductSellingprice()
        product_sellingprice.product = product
        product_sellingprice.commencing_date = datetime.strptime('2012-03-01:00:00:00', '%Y-%m-%d:%H:%M:%S')
        product_sellingprice.set_date = datetime.strptime('2012-01-01:00:00:00', '%Y-%m-%d:%H:%M:%S')
        product_sellingprice.price = Money(6.00, 'EUR')
        product_sellingprice.save()

        self.assertEqual(product.get_price(date=datetime.strptime('2012-02-02:00:00:00', '%Y-%m-%d:%H:%M:%S')), Money(4.00, 'EUR'))
        self.assertEqual(product.get_price(date=datetime.strptime('2012-03-02:00:00:00', '%Y-%m-%d:%H:%M:%S')), Money(6.00, 'EUR'))
Ejemplo n.º 4
0
 def process_item(self, item, spider):
     p = Product()
     p.title = item["title"]
     p.price = float(item['price'].replace(',', '.').strip())
     p.image = item['image_url'] or ''
     p.save()
     return item
Ejemplo n.º 5
0
def add_product(request):
    if request.method == 'POST':
        name = request.POST['name']
        category = request.POST['category']
        description = request.POST['descrription']
        price = request.POST['price']
        quantity = request.POST['quantity']
        img = request.FILES['photo1']
        offer = request.POST['offer']
        shop_id = request.user.id
        if offer == '':
            offer = 0

        current_username = request.user.username
        per = Seller.objects.get(username=current_username)
        new_product = Product(name=name,
                              category=category,
                              description=description,
                              price=price,
                              quantity=quantity,
                              rate=0,
                              offer=offer,
                              comment=[],
                              img=img,
                              shop_id=per.id)
        new_product.save()
        per.owned_products.append(new_product.id)
        per.save()
        return redirect('/dashboard')
Ejemplo n.º 6
0
    def create_product(self, request):
        form = ProductForm(data=request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            user = users.get_current_user()
            prod_obj = Product(
                description=cd['description'],
                min_price=cd['min_price'],
                due_date=cd['due_date'],
                owner_email=user.email()
            )
            prod_obj.save() # so we have a key

            new_photo = ''
            new_photo_data = request.FILES.get("photo", None)
            if new_photo_data:
                for chunk in new_photo_data.chunks():
                    new_photo += chunk

                if new_photo:
                    img = images.Image(new_photo)
                    img.resize(height=100)
                    clean_photo = img.execute_transforms(output_encoding=images.PNG)
                    prod_obj.photo = db.Blob(clean_photo)
                    prod_obj.save()
            return HttpResponseRedirect('/')

        return self.show_template('main/product_info.html', form=form)
def create_product_from_email(email, is_negotiable):
    user = create_user_from_email(email)
    product = Product(seller=user.profile)
    product.name = "kurkure"
    product.expected_price = 20
    product.is_negotiable = is_negotiable
    product.description = "dedha hai par mera hai"

    product.save()
    return product, user
Ejemplo n.º 8
0
    def test_product_has_a_price(self):
        product = Product()
        category = Category.objects.first()
        product.category = category
        product.SKU = 123
        product.img_src = ""

        product.save()

        self.assertTrue(hasattr(product, "price"))
 def create_test_product(self, name='bbc'):
     product_name = name
     profile1 = self.create_test_user("*****@*****.**").profile
     expectedPrice = 100
     description = "Some unknown english words"
     category = self.create_test_category(name='xyzCategory')
     product = Product(name=product_name,
                       seller=profile1,
                       expected_price=expectedPrice,
                       description=description,
                       category=category)
     product.save()
     return product
 def create_test_product(self):
     name = "TechRe Book"
     seller = self.create_test_user(
         '*****@*****.**').profile
     product_price = 500
     description = "Mint condition"
     category = self.create_test_category(name="Books")
     product = Product(
         name=name,
         seller=seller,
         expected_price=product_price,
         description=description,
         category=category,
     )
     product.save()
     return product
Ejemplo n.º 11
0
    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()

# add to FitList:
        for i in range(4):
            newOne = FitList(product=testDBModel.testProducts[i],
                             owner=testDBModel.testUsers[i])
            newOne.save()
def register_products(objs):
    products = json.loads(objs)
    print products
    for p in products:
        print p
        product = Product()
        product.name = p['name']
        product.price = p['price']
        product.image_url = p['image_url']
        product.unit_value = p['unit_value']
        product.unit_name = p['unit_name']
        farm = Farm.objects.get(id=p['farm'])
        product.farm = farm
        product.description = p['description']
        product.quantity = p['quantity']
        product.save()
        print 'objeto guardado'
    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()
Ejemplo n.º 14
0
def createProduct(request):
    try:
        if not Customer.objects.get(user=request.user).isAdmin:
            return HttpResponse('Must be admin to access.',
                                status=status.HTTP_403_FORBIDDEN)
        if request.method == "GET":
            return HttpResponse(render(request,
                                       'manageSite/createProduct.html',
                                       {'form': CreateProductForm}),
                                status=200)
        elif request.method == "POST":
            productData = request.POST
            productImage = request.FILES
            allCollection = Collection.objects.all()

            listOfName = []
            for collection in allCollection:
                listOfName.append(collection.collectionName)

            if (productData['productCollection'] not in listOfName):
                Collection.objects.create(
                    collectionName=productData['productCollection'])
                currCollection = Collection.objects.get(
                    collectionName=productData['productCollection'])
            else:
                currCollection = Collection.objects.get(
                    collectionName=productData['productCollection'])

            newProduct = Product(
                productName=productData['productName'],
                productDescription=productData['productDescription'],
                productPrice=productData['productPrice'],
                productCollection=currCollection)
            newProduct.save()

            if productImage:
                addImageToProduct(productImage['productImage'], newProduct)
            return HttpResponse('Product created successfully',
                                status=status.HTTP_200_OK)
    except DatabaseError:
        return HttpResponse(DatabaseErrorMessage,
                            status=status.HTTP_400_BAD_REQUEST)
    except Exception as e:
        return HttpResponse(str(e), status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 15
0
def createProducts(request):
    """
    On GET- returns form to create new product
    On POST- creates a new product with form input.
    On PATCH- changes specified product details with data given by user.
    On DELETE- deletes product given by user.
    """
    try :
        # if not Customer.objects.get(user=request.user).isAdmin:
        #     return HttpResponse('Must be admin to access.', status=status.HTTP_403_FORBIDDEN)
        if request.method == "GET" :
            return HttpResponse(render(request, "products/create-a-product.html", 
                                {'form' : NewProductForm}), status = 200)
        elif request.method == "POST":
            productData = request.POST
            productImage = request.FILES
            allCollection = Collection.objects.all()

            listOfName = []
            for collection in allCollection:
                listOfName.append(collection.collectionName)

            if (productData['productCollection'] not in listOfName):
                Collection.objects.create(collectionName = productData['productCollection'])
                currCollection = Collection.objects.get(collectionName=productData['productCollection'])
            else:
                currCollection = Collection.objects.get(collectionName=productData['productCollection'])
            
            newProduct = Product(
                productName = productData['productName'],
                productDescription = productData['productDescription'],
                productPrice = productData['productPrice'],
                productCollection = currCollection
            )
            newProduct.save()

            if productImage:
                addImageToProduct(productImage['productImage'], newProduct)
            return HttpResponse('Product created successfully', status=status.HTTP_200_OK)
    except DatabaseError :
        return HttpResponse(DatabaseErrorMessage, status=status.HTTP_400_BAD_REQUEST)
    except Exception as e:
        return HttpResponse(str(e), status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 16
0
def add_product(request):

    context = {}

    form = ProductForm(request.POST, request.FILES)
    context['form'] = form

    if form.is_valid():

        datas = form.cleaned_data

        name, price, city = datas['name'], datas['price'], datas['city']
        quantity, availability = datas['quantity'], datas['availability']
        description, pictures = datas['description'], request.FILES.getlist(
            'pictures')
        category = datas['category']

        product = Product(name=name, price=price, city=city, quantity=quantity, \
                        description=description, availability=availability)

        product.slug = slugify(product.name)
        product.save()

        # On ajoute les catégories.
        import karim.functions as f
        categories = f.parse_select_multiple(category)

        for cat in categories:
            _cat = get_object_or_404(Category, name=cat)
            product.category.add(_cat)

        # On ajoute les images.
        for key, img in enumerate(pictures):
            if key == 0:
                product.image = "products/" + str(img)

            product.save()
            pic = Picture(product=product, picture=img)
            pic.save()
            f.handle_upload_file("products", str(img), img)

    return render(request, "add_product.html", context)
    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()
Ejemplo n.º 18
0
 def setUp(self):
     self.factory = RequestFactory()
     self.user = User.objects.create_user(username='******',
                                          email='*****@*****.**',
                                          password='******')
     product = Product(
         name="Coca cola 1L",
         code="5449000054227",
         nutriscore="e",
         url="https://fr.openfoodfacts.org/produit/5449000054227/coca-cola",
         popularity=561,
     )
     product.save()
     product = Product(
         name="Coca Zéro",
         code="5449000133328",
         nutriscore="b",
         url=
         "https://fr.openfoodfacts.org/produit/5449000133328/coca-zero-coca-cola",
         popularity=538,
     )
     product.save()
Ejemplo n.º 19
0
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!")
Ejemplo n.º 20
0
def save_product(product_dict):
    product = Product(**product_dict)
    product.save()
Ejemplo n.º 21
0
    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 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!")
Ejemplo n.º 23
0
    def test_can_create_new_product(self):
        category = Category.objects.first()
        product = Product(category=category, SKU=123, img_src="abc")
        product.save()

        self.assertIn(product, Product.objects.all())
Ejemplo n.º 24
0
class BookmarkTests(TestCase):
    """
    Test class holding the functions testing the Substitution model.
    """
    def setUp(self):
        self.product_source = Product(
            name="Coca-Cola Classic",
            code="5449000000996",
            nutriscore="e",
            url="https://fr.openfoodfacts.org/produit/5449000000996/coca-cola",
            popularity=2802)
        self.product_source.save()
        self.product_target = Product(
            name="Coca-Cola Zero",
            code="5449000133335",
            nutriscore="b",
            url=
            "https://fr.openfoodfacts.org/produit/5449000133335/coca-cola-zero",
            popularity=181)
        self.product_target.save()
        test_user = User(email='*****@*****.**',
                         password=None,
                         first_name='essai',
                         last_name='register')
        test_user.set_password('blabla75')
        test_user.save()
        self.target_user = User.objects.get(email='*****@*****.**')

    def test_save_and_get_bookmarks(self):
        print("\nTEST - Bookmark --> def save_bookmark()\n")
        Substitution.save_bookmark(self.product_source.id,
                                   self.product_target.id, self.target_user.id)
        print("TEST_BOOKMARK SAVED")
        print("\nTEST - Bookmark --> def get_bookmarks()\n")
        test_get_bookmarks = Substitution.get_bookmarks_by_user(
            self.target_user.id)
        print(
            "self.assertTrue(test_get_bookmarks[0].target_product_id, self.product_target.id)"
        )
        self.assertTrue(test_get_bookmarks[0].target_product_id,
                        self.product_target.id)
        print('Assert 1 Done')
        print(
            "self.assertTrue(test_get_bookmarks[0].source_product_id, self.product_source.id)"
        )
        self.assertTrue(test_get_bookmarks[0].source_product_id,
                        self.product_source.id)
        print('Assert 2 Done')

    def test_get_and_delete_bookmark(self):
        print("\nTEST - Bookmark --> def delete_bookmark()\n")
        Substitution.save_bookmark(self.product_source.id,
                                   self.product_target.id, self.target_user.id)
        print("TEST_BOOKMARK SAVED")
        test_delete_bookmark = Substitution.objects.get(
            source_product_id=self.product_source.id,
            target_product_id=self.product_target.id,
            user_id=self.target_user.id)
        print("test_delete_bookmark.delete()")
        test_delete_bookmark.delete()
        print("\ndef get_bookmarks_by_user()\n")
        test_get_bookmarks = Substitution.get_bookmarks_by_user(
            self.target_user.id)
        print("self.assertQuerysetEqual(test_get_bookmarks, [])")
        self.assertQuerysetEqual(test_get_bookmarks, [])
        print('Assert 1 Done')

    def test_specific_bookmark(self):
        print("\nTEST - Bookmark --> def specific_bookmark()\n")
        Substitution.save_bookmark(self.product_source.id,
                                   self.product_target.id, self.target_user.id)
        test_specific_1 = Substitution.specific_bookmark(
            self.product_source.id, self.product_target.id,
            self.target_user.id)
        print(
            "self.assertTrue(Substitution.specific_bookmark(self.product_source.id, self.product_target.id, self.target_user.id))"
        )
        self.assertTrue(test_specific_1)
        print('ASSERT 1 DONE')
        print(
            "self.assertFalse(Substitution.specific_bookmark(5620, 5621, 12))")
        test_specific_2 = Substitution.specific_bookmark(5620, 5621, 12)
        self.assertFalse(test_specific_2)
        print("ASSERT 2 DONE")

    def test_check_favs(self):
        print("\nTEST - Bookmark --> def check_favs()\n")
        Substitution.save_bookmark(self.product_source.id,
                                   self.product_target.id, self.target_user.id)
        test_favs = Substitution.check_favs(self.product_source,
                                            self.target_user)
        print('test_favs: ' + str(test_favs))
        print(
            "self.assertEqual(Substitution.check_favs(self.product_source, self.target_user)[0], 2"
        )
        self.assertEqual(test_favs[0], 2)
        print('ASSERT DONE')