def test_get_or_create_random_model_instances(self): # normal cases initial_users = UserFactory.create_batch(size=3) generated = get_or_create_random_model_instances(User, UserFactory, num=10) self.assertEqual(len(generated), 10) for user in generated: self.assertIsInstance(user, User) self.assertTrue(all(map(lambda u: u in generated, initial_users))) # for zero length generated = get_or_create_random_model_instances(User, UserFactory, num=0) self.assertEqual(len(generated), 0) # minus count should return list of zero length generated = get_or_create_random_model_instances(User, UserFactory, num=-4) self.assertEqual(len(generated), 0) # when nothing to select User.objects.all().delete() generated = get_or_create_random_model_instances(User, UserFactory, num=3) self.assertEqual(len(generated), 3) # invalid model class with self.assertRaises(TypeError) as _: get_or_create_random_model_instances(Dummy, UserFactory, num=3) # invalid factory class with self.assertRaises(TypeError) as _: get_or_create_random_model_instances(User, Dummy, num=3)
def handle(self, *args, **options): self.stdout.write(self.style.WARNING('All users created with password - password')) # CREATE USERS # create admin user UserFactory.create(username='******', is_superuser=True, is_staff=True) self.stdout.write(self.style.SUCCESS('Superuser username: super')) staff_user = UserFactory.create(username='******', is_superuser=False, is_staff=True) # give the admin user everything for the purpose of testing staff_user.user_permissions.add(*list(Permission.objects.all())) self.stdout.write(self.style.SUCCESS('Staff username: Admin')) # create 100 standard users UserFactory.create_batch(30) self.stdout.write(self.style.SUCCESS('100 Random users created')) # CREATE LOTTOS # create random LotteryFactory.create_batch(2, is_active=True) # create some random active 3 ball lotteries LotteryFactory.create_batch(5, number_of_balls=3, is_active=True) # create some random active 6 ball lotteries LotteryFactory.create_batch(5, number_of_balls=6, is_active=True) # create some inactive LotteryFactory.create_batch(5, number_of_balls=3, is_active=False) self.stdout.write(self.style.SUCCESS('Test data created!')) # CREATE ENTRIES lottos = Lottery.objects.filter() EntryFactory.create_batch(100, entry_for=lottos[0]) EntryFactory.create_batch(100, entry_for=lottos[1]) EntryFactory.create_batch(100, entry_for=lottos[2]) # draw some lottos lottos[0].do_draw(machine='arthur') lottos[1].do_draw(machine='guinevere') lottos[2].do_draw(machine='cheat')
def test_member_operations(self): queue = QueueFactory(creator=self.user) count = 3 users = UserFactory.create_batch(count) for user in users: res = self.client.put( reverse( 'api_queue_add_member_api_view', kwargs={'pk': str(queue.id)} ), data={'userId': str(user.id)}, content_type='application/json', HTTP_AUTHORIZATION=self.access_header ) self.assertEqual(res.status_code, status.HTTP_200_OK) queue.refresh_from_db() self.assertEqual(queue.members, list(map(lambda x: str(x.id), users[::-1]))) for user in users: res = self.client.put( reverse( 'api_queue_move_member_to_end_api_view', kwargs={'pk': str(queue.id)} ), data={'userId': str(user.id)}, content_type='application/json', HTTP_AUTHORIZATION=self.access_header ) self.assertEqual(res.status_code, status.HTTP_200_OK) queue.refresh_from_db() self.assertEqual(queue.members[0], str(user.id)) queue.refresh_from_db() self.assertEqual(queue.members, list(map(lambda x: str(x.id), users[::-1]))) queue.refresh_from_db() self.assertEqual(queue.members, list(map(lambda x: str(x.id), users[::-1]))) for i in range(count): user = users[i] res = self.client.put( reverse( 'api_queue_remove_member_api_view', kwargs={'pk': str(queue.id)} ), data={'userId': str(user.id)}, content_type='application/json', HTTP_AUTHORIZATION=self.access_header ) self.assertEqual(res.status_code, status.HTTP_200_OK) queue.refresh_from_db() self.assertEqual(len(queue.members), count - i - 1)
def test_queue_members_operations(self): creator = UserFactory() users = UserFactory.create_batch(2) queue = Queue(name='abc', creator=creator) queue.save() self.assertEqual(queue.members, []) queue.push_member(str(users[0].id)) queue.save() queue.refresh_from_db() self.assertEqual(queue.members, [str(users[0].id)]) queue.pop_member(str(users[1].id)) queue.save() queue.refresh_from_db() self.assertEqual(queue.members, [str(users[0].id)]) queue.pop_member(str(users[0].id)) queue.save() queue.refresh_from_db() self.assertEqual(queue.members, [])
def create_initial_users(): UserFactory.create_batch(USER_COUNT)
from datetime import datetime from random import randint, random from core.factories import ( CommentFactory, CompanyFactory, CategoryFactory, ProductFactory, ReviewFactory, UserFactory, ) from core.models import Category, ProductImage from scripts.seeds.seed_categories import seed_categories from utils import get_image_from_url owners = UserFactory.create_batch(10) users = [u for u in owners] def seed_images(images, file_name, product): for index, url in enumerate(images, start=1): image = get_image_from_url(url, f"{file_name}_{index}") ProductImage.objects.get_or_create(product=product, image=image) def seed_comments(review): for i in range(randint(0, 5)): comm_user = None if random() > 0.1: comm_user = users[randint(0, len(users) - 1)] else: