def setUp(self):
     """
     setUp --> called before each test in the class
     It will be almost the same for all the views tests
     """
     super(TestViewSearch, self).setUpClass()
     # create 3 products
     mixer.cycle(3).blend(Product,
                          pname=mixer.sequence('prod{0}'),
                          code=mixer.sequence('{0}'),
                          nutriscore_score=25,
                          nutriscore_grade="e",
                          salt=mixer.RANDOM('H', 'M', 'L', 'U'),
                          sugar=mixer.RANDOM('H', 'M', 'L', 'U'),
                          fat=mixer.RANDOM('H', 'M', 'L', 'U'),
                          saturated_fat=mixer.RANDOM('H', 'M', 'L', 'U'),
                          category__cname=mixer.sequence('category{0}'),
                          brand__bname=mixer.sequence('brand{0}'),
                          store__sname=mixer.sequence('store{0}'))
     # add a cat to a product
     prod2 = Product.objects.get(pname='prod2')
     cat1 = Category.objects.get(cname='category1')
     prod2.category.add(cat1)
     prod2.save()
     self.search_url = reverse("products_app:search")
     # init test client
     self.client = Client()
     # create a user and connect with this user
     user = User.objects.create(username='******')
     user.set_password('foobar')
     user.save()
     self.user = user
     self.client.login(username='******', password='******')
Exemple #2
0
def main():
    mixer.cycle(15).blend(User,
                          username=mixer.FAKE,
                          first_name=mixer.FAKE,
                          last_name=mixer.FAKE,
                          email=mixer.FAKE)
    products = Product.objects.all()
    product_contenttype = ContentType.objects.get_for_model(Product)

    for product in products:
        parent_comments = mixer.cycle(comments_per_product).blend(
            Comment,
            user=mixer.RANDOM(*list(User.objects.all())),
            content=mixer.FAKE,
            content_type=product_contenttype,
            object_id=product.id,
            parent=None)

        child_comments = mixer.cycle(2).blend(
            Comment,
            user=mixer.RANDOM(*list(User.objects.all())),
            content=mixer.FAKE,
            content_type=product_contenttype,
            object_id=product.id,
            parent=mixer.RANDOM(*parent_comments))

    print('Done!', Comment.objects.count(), 'comments in the database')
 def setUp(self):
     super(TestViewSaveRemoveBookmark, self).setUpClass()
     # create 2 products
     mixer.cycle(3).blend(Product,
                          pname=mixer.sequence('prod{0}'),
                          code=mixer.sequence('{0}'),
                          nutriscore_score=25,
                          nutriscore_grade="e",
                          salt=mixer.RANDOM('H', 'M', 'L', 'U'),
                          sugar=mixer.RANDOM('H', 'M', 'L', 'U'),
                          fat=mixer.RANDOM('H', 'M', 'L', 'U'),
                          saturated_fat=mixer.RANDOM('H', 'M', 'L', 'U'),
                          category__cname=mixer.sequence('category{0}'),
                          brand__bname=mixer.sequence('brand{0}'),
                          store__sname=mixer.sequence('store{0}'))
     # test client
     self.client = Client()
     # user creation
     user = User.objects.create(username='******')
     user.set_password('foobar')
     user.save()
     self.user = user
     self.client.login(username='******', password='******')
     json_data = json.dumps({'action': 'add', 'subst': '2', 'prod': '1'})
     response = self.client.post(
         reverse('products_app:save_remove_bookmark'),
         json_data,
         content_type="application/json")
Exemple #4
0
def test_random(mixer):
    user = mixer.blend(
        'auth.User', username=mixer.RANDOM('mixer', 'its', 'fun'))
    assert user.username in ('mixer', 'its', 'fun')

    rabbit = mixer.blend(Rabbit, url=mixer.RANDOM)
    assert '/' in rabbit.url
 def setUp(self):
     super(TestViewProductDetail, self).setUpClass()
     # create 2 products
     mixer.cycle(2).blend(Product,
                          pname=mixer.sequence('prod{0}'),
                          code=mixer.sequence('{0}'),
                          nutriscore_score=25,
                          nutriscore_grade="e",
                          salt=mixer.RANDOM('H', 'M', 'L', 'U'),
                          sugar=mixer.RANDOM('H', 'M', 'L', 'U'),
                          fat=mixer.RANDOM('H', 'M', 'L', 'U'),
                          saturated_fat=mixer.RANDOM('H', 'M', 'L', 'U'),
                          category__cname=mixer.sequence('category{0}'),
                          brand__bname=mixer.sequence('brand{0}'),
                          store__sname=mixer.sequence('store{0}'))
     self.client = Client()
 def setUp(self):
     super(TestViewSearchSubstitute, self).setUpClass()
     # create 4 products
     mixer.cycle(4).blend(Product,
                          pname=mixer.sequence('prod{0}'),
                          code=mixer.sequence('{0}'),
                          nutriscore_score=25,
                          nutriscore_grade="e",
                          salt=mixer.RANDOM('H', 'M', 'L', 'U'),
                          sugar=mixer.RANDOM('H', 'M', 'L', 'U'),
                          fat=mixer.RANDOM('H', 'M', 'L', 'U'),
                          saturated_fat=mixer.RANDOM('H', 'M', 'L', 'U'),
                          category__cname=mixer.sequence('category{0}'),
                          brand__bname=mixer.sequence('brand{0}'),
                          store__sname=mixer.sequence('store{0}'))
     # add a cat to a product
     prod2 = Product.objects.get(pname='prod2')
     cat1 = Category.objects.get(cname='category1')
     prod2.category.add(cat1)
     prod2.save()
     # the prod3 will not have any substitute
     prod3 = Product.objects.get(pname='prod3')
     prod3.nutriscore_score = 24
     prod3.save()
     # nb_cat by product --> for the substiture research
     categories_s = Category.objects.all()
     for cat in categories_s:
         nbr_prod = Product.objects.filter(
             category__cname=cat.cname).count()
         upd_cat = Category.objects.get(cname=cat.cname)
         upd_cat.nb_prod = nbr_prod
         upd_cat.save()
     # init test client
     self.client = Client()
     # create a user and connect with this user
     user = User.objects.create(username='******')
     user.set_password('foobar')
     user.save()
     self.user = user
     self.client.login(username='******', password='******')
 def setUp(self):
     """"
     Setup method --> initialize datas to test models methods
     """
     super(TestUserAppModels, self).setUpClass()
     mixer.cycle(3).blend(Product,
                          pname=mixer.sequence('prod{0}'),
                          code=mixer.sequence('{0}'),
                          nutriscore_score=25,
                          nutriscore_grade="e",
                          salt=mixer.RANDOM('H', 'M', 'L', 'U'),
                          sugar=mixer.RANDOM('H', 'M', 'L', 'U'),
                          fat=mixer.RANDOM('H', 'M', 'L', 'U'),
                          saturated_fat=mixer.RANDOM('H', 'M', 'L', 'U'),
                          category__cname=mixer.sequence('category{0}'),
                          brand__bname=mixer.sequence('brand{0}'),
                          store__sname=mixer.sequence('store{0}'))
     # add a cat to a product
     prod2 = Product.objects.get(pname='prod2')
     cat1 = Category.objects.get(cname='category1')
     prod2.category.add(cat1)
     prod2.save()
Exemple #8
0
 def setUp(self):
     super(TestViewSaveBookmark, self).setUpClass()
     # create 2 products
     mixer.cycle(2).blend(Product,
                          pname=mixer.sequence('prod{0}'),
                          code=mixer.sequence('{0}'),
                          nutriscore_score=25,
                          nutriscore_grade="e",
                          salt=mixer.RANDOM('H', 'M', 'L', 'U'),
                          sugar=mixer.RANDOM('H', 'M', 'L', 'U'),
                          fat=mixer.RANDOM('H', 'M', 'L', 'U'),
                          saturated_fat=mixer.RANDOM('H', 'M', 'L', 'U'),
                          category__cname=mixer.sequence('category{0}'),
                          brand__bname=mixer.sequence('brand{0}'),
                          store__sname=mixer.sequence('store{0}'))
     # test client
     self.client = Client()
     # user creation
     user = User.objects.create(username='******')
     user.set_password('foobar')
     user.save()
     self.user = user
     self.client.login(username='******', password='******')
Exemple #9
0
    def handle(self, *args, **options):
        # Очищаем базу
        delete_all()
        # Создаем случайную змею
        family = mixer.blend(Family)  # сразу и в базу сохраняет
        print(family)

        # Создаем связанные объекты
        specia = mixer.blend(Specia)
        print(specia)
        print(specia.family.name)

        snakecard = mixer.blend(SnakeCard)
        print(snakecard)
        print(snakecard.examplare)

        # Задание полей
        snake = mixer.blend(Snake, specia=specia)
        print(snake)
        # print(snakecard.examplare)

        snakecard = mixer.blend(SnakeCard, examplare=snake)
        print(snakecard)
        print(snakecard.examplare)

        # Задание полей для связанной модели
        delete_all()
        specia = mixer.blend(Specia, family__name='Super Family')
        print(f'List attrs of {specia}')
        for key in specia.__dict__:
            print(f'{key}:', specia.__dict__[key])
        print('family name:', specia.family.name)
        print('-/' * 10)

        delete_all()
        snake = mixer.blend(Snake,
                            specia__name='Some specia',
                            specia__family__name='Some Family')
        print(snake)
        print(snake.specia)
        print(snake.specia.family.name)
        print('-/' * 10)

        # Выбор из списка значений
        delete_all()
        family = mixer.blend(Family,
                             name=mixer.RANDOM('Family A', 'Family B',
                                               'Family C'))
        print(family.name)

        # с распаковкой имен из списка
        delete_all()
        names = ['Family A', 'Family B', 'Family C']
        family = mixer.blend(Family, name=mixer.RANDOM(*names))
        print(family.name)

        # Задание поля на основе уже данного
        delete_all()
        # specia = mixer.blend(Specia)
        # snake = mixer.blend(Snake, specia=specia)
        snake = mixer.blend(Snake, specia__id=100)
        # snakecard = mixer.blend(SnakeCard, examplare=snake,
        #                     some_date=datetime.now(), create_month=mixer.MIX.some_date.month)
        snakecard = mixer.blend(SnakeCard,
                                examplare=snake,
                                some_date=timezone.now(),
                                create_month=mixer.MIX.some_date.month)
        print(snakecard.create_month)
        print(snakecard.some_date)

        print('-/' * 10)
        # Создание нескольких записей
        delete_all()
        names = ['Family A', 'Family B', 'Family C']
        families = mixer.cycle(3).blend(Family)
        print(families)
        for i in families:
            print('id:', i.id, i.name)

        # последовательности
        names = ['Family A', 'Family B', 'Family C']
        families = mixer.cycle(3).blend(Family, name=mixer.sequence(*names))
        print(families)
        for i in families:
            print('id:', i.id, i.name)

        # последовательности
        delete_all()
        num = 3
        alphabet = string.ascii_uppercase
        names = list(alphabet[:num])
        f_names = list(map(lambda i: f'Family {i}', names))
        families = mixer.cycle(num).blend(Family,
                                          name=mixer.sequence(*f_names))
        print(families)
        for i in families:
            print('id:', i.id, i.name)

        print('Done!')
Exemple #10
0
import os
import sys
import django

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "charcoallog.settings")
django.setup()

from django.contrib.auth.models import User
from django.utils import timezone
from django.utils.text import slugify
from mixer.backend.django import mixer
from charcoallog.core.models import Extract

mixer.cycle(5).blend(Extract,
                     user_name='admin',
                     date=timezone.now(),
                     payment=mixer.RANDOM('débito', 'crédito'))