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='******')
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")
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()
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='******')
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!')
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'))