Example #1
0
 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')
Example #3
0
    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)
Example #4
0
    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, [])
Example #5
0
def create_initial_users():
    UserFactory.create_batch(USER_COUNT)
Example #6
0
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: