Ejemplo n.º 1
0
class APISeedTestCase(unittest.TestCase):

    def setUp(self):
        self.seed1 = Seed()
        self.seed2 = Seed()

    def test_django_seed_singleton(self):
        self.assertEqual(self.seed1, self.seed2)
        self.assertIs(self.seed1, self.seed1)

    def test_faker_cache_faker(self):
        gen1 = self.seed1.faker()
        gen2 = self.seed2.faker()
        self.assertIs(gen1, gen2)

        gen1 = self.seed1.faker(codename='default')
        gen2 = self.seed2.faker(codename='default')
        self.assertIs(gen1, gen2)

        gen1 = self.seed1.faker(locale='it_IT')
        gen2 = self.seed2.faker(locale='it_IT')
        self.assertIs(gen1, gen2)

    def test_faker_cache_seeder(self):
        seeder1 = self.seed1.seeder()
        seeder2 = self.seed2.seeder()
        self.assertIs(seeder1, seeder2)

        gen1 = seeder1.faker
        gen2 = seeder2.faker
        self.assertIs(gen1, gen2)

        seeder1 = self.seed1.seeder(locale='it_IT')
        seeder2 = self.seed2.seeder(locale='it_IT')
        self.assertIs(seeder1, seeder2)
Ejemplo n.º 2
0
    def handle_app_config(self, app_config, **options):
        if app_config.models_module is None:
            raise SeederCommandError('You must provide an app to seed')

        try:
            number = int(options['number'])
        except ValueError:
            raise SeederCommandError('The value of --number must be an integer')

        seeder = Seed.seeder()

        for model in self.sorted_models(app_config):
            seeder.add_entity(model, number)
            print('Seeding %i %ss' % (number, model.__name__))

        pks = seeder.execute()
        print(pks)
Ejemplo n.º 3
0
 def handle(self, *args, **options):
     number = options.get("number")
     orders = Order.objects.all()
     products = Product.objects.all()
     materials = Material.objects.all()
     prices = [12000, 9000, 13000]
     seeder = Seed.seeder()
     seeder.add_entity(
         OrderItem,
         number,
         {
             "order": lambda x: random.choice(orders),
             "product": lambda x: random.choice(products),
             "quantity": lambda x: random.randint(1, 3),
             "price": lambda x: random.choice(prices),
             "outsole_color_left": randomColor(),
             "midsole_color_left": randomColor(),
             "uppersole_color_left": randomColor(),
             "shoelace_color_left": randomColor(),
             "tongue_color_left": randomColor(),
             "outsole_color_right": randomColor(),
             "midsole_color_right": randomColor(),
             "uppersole_color_right": randomColor(),
             "shoelace_color_right": randomColor(),
             "tongue_color_right": randomColor(),
             "outsole_material_left": random.choice(materials),
             "midsole_material_left": random.choice(materials),
             "uppersole_material_left": random.choice(materials),
             "shoelace_material_left": random.choice(materials),
             "tongue_material_left": random.choice(materials),
             "outsole_material_right": random.choice(materials),
             "midsole_material_right": random.choice(materials),
             "uppersole_material_right": random.choice(materials),
             "shoelace_material_right": random.choice(materials),
             "tongue_material_right": random.choice(materials),
             "length_left": lambda x: random.randint(190, 300),
             "length_right": lambda x: random.randint(190, 300),
             "width_left": lambda x: random.randint(70, 120),
             "width_right": lambda x: random.randint(70, 120),
         },
     )
     seeder.execute()
     self.stdout.write(self.style.SUCCESS(f"{number} orders created!"))
Ejemplo n.º 4
0
    def handle(self, *args, **options):
        number = options.get('number')
        seeder = Seed.seeder()

        all_user = user_model.User.objects.all()
        room_types = room_model.RoomType.objects.all()

        seeder.add_entity(
            room_model.Room, number, {
                'name': lambda x: seeder.faker.address(),
                'host': lambda x: random.choice(all_user),
                'room_type': lambda x: random.choice(room_types),
                "guests": lambda x: random.randint(0, 20),
                'price': lambda x: random.randint(0, 300),
                'beds': lambda x: random.randint(0, 5),
                'bedrooms': lambda x: random.randint(0, 5),
                'baths': lambda x: random.randint(0, 5),
            })
        created_photos = seeder.execute()
        created_clean = flatten(list(created_photos.values()))
        amenities = room_model.Amenity.objects.all()
        facilities = room_model.Facility.objects.all()

        for pk in created_clean:
            room = room_model.Room.objects.get(pk=pk)
            for i in range(3, random.randint(10, 30)):
                room_model.Photo.objects.create(
                    caption=seeder.faker.sentence(),
                    room=room,
                    file=f"/media/{random.randint(1,31)}.webp",
                )

            for a in amenities:
                num = random.randint(0, 15)
                if num % 2 == 0:
                    room.amenities.add(a)

            for a in facilities:
                num = random.randint(0, 15)
                if num % 2 == 0:
                    room.facilities.add(a)

        self.stdout.write(self.style.SUCCESS("Rooms created!"))
Ejemplo n.º 5
0
 def handle(self, *args, **options):
     total = int(options.get("total"))
     seeder = Seed.seeder()
     movies = Category.objects.filter(kind=Category.KIND_MOVIE)
     books = Category.objects.filter(kind=Category.KIND_BOOK)
     seeder.add_entity(
         User,
         total,
         {
             "is_staff": False,
             "is_superuser": False,
             "preference":
             lambda x: choice([User.PREF_BOOKS, User.PREF_MOVIES]),
             "fav_book_cat": lambda x: choice(books),
             "fav_movie_cat": lambda x: choice(movies),
         },
     )
     seeder.execute()
     self.stdout.write(self.style.SUCCESS(f"{total} users created!"))
Ejemplo n.º 6
0
 def handle(self, *args, **options):
     total = int(options.get("total"))
     seeder = Seed.seeder()
     seeder.add_entity(
         Person,
         total,
         {
             "name":
             lambda x: seeder.faker.name(),
             "kind":
             lambda x: choice([
                 Person.KIND_ACTOR, Person.KIND_DIRECTOR, Person.KIND_WRITER
             ]),
             "photo":
             lambda x: f"people/{randint(1,30)}.jpg",
         },
     )
     seeder.execute()
     self.stdout.write(self.style.SUCCESS(f"{total} people created!"))
Ejemplo n.º 7
0
    def handle(self, *args, **options):
        total = options.get("total")
        seeder = Seed.seeder()
        books = book_models.Book.objects.all()
        movies = movie_models.Movie.objects.all()
        users = user_models.User.objects.all()
        seeder.add_entity(
            Review,
            total,
            {
                "movie": lambda x: random.choice(movies),
                "book": lambda x: random.choice(books),
                "created_by": lambda x: random.choice(users),
                "rating": lambda x: random.randint(1, 5),
            },
        )
        seeder.execute()

        self.stdout.write(self.style.SUCCESS(f"{total} {NAME} created!"))
Ejemplo n.º 8
0
    def handle(self, *labels, **options):

        number = options.get("number")
        seeder = Seed.seeder()
        users = user_models.User.objects.all()
        rooms = room_models.Room.objects.all()

        seeder.add_entity(
            list_models.List, number, {"user": lambda x: random.choice(users)},
        )
        created = seeder.execute()
        cleaned = flatten(list(created.values()))
        for pk in cleaned:
            list_model = list_models.List.objects.get(pk=pk)
            to_add = rooms[random.randint(1, 5) : random.randint(6, 10)]
            print(to_add)
            list_model.rooms.add(*to_add)

        self.stdout.write(self.style.SUCCESS(f"{number} of lists are created!"))
Ejemplo n.º 9
0
    def handle(self, *args, **options):
        number = options.get("number")
        seeder = Seed.seeder()
        users = user_models.User.objects.all()
        rooms = room_models.Room.objects.all()
        seeder.add_entity(
            list_models.List, number, {"user": lambda x: random.choice(users)}
        )

        created = seeder.execute()
        cleaned = flatten(list(created.values()))
        for pk in cleaned:
            list_model = list_models.List.objects.get(pk=pk)
            start_num = random.randint(0, 5)
            end_num = random.randint(6, 30)
            to_add = rooms[start_num:end_num]
            list_model.rooms.add(*to_add)

        self.stdout.write(self.style.SUCCESS(f"{number} {NAME} created!"))
Ejemplo n.º 10
0
    def handle(self, *args, **options):
        for title in 'SE SL VE VT'.split(' '):
            Category.objects.update_or_create(title=title)

        categories = tuple(Category.objects.all())

        teachers = tuple(
            get_user_model().objects.all().filter(groups__name='teacher'))
        students = tuple(
            get_user_model().objects.all().filter(groups__name='student'))

        seeder: Seeder = Seed.seeder(locale='cz_CZ')
        # seeder.add_entity(get_user_model(), 30)
        seeder.add_entity(
            Thesis, 10,
            dict(
                registration_number=lambda *_: ''.join(
                    (choice(string.ascii_uppercase), str(randint(100, 999)))),
                published_at=lambda *_: date(randint(2004, 2020), choice(
                    (4, 5)), 1),
                category=lambda *_: choice(categories),
                title=lambda *_: choice(TITLES),
                abstract=lambda *_: ' '.join(
                    sample(ABSTRACTS, int(triangular(5, 15)))),
                reservable=lambda *_: random() > .2,
                state=lambda *_: choice(Thesis.State.values),
                supervisor=lambda *_: choice(teachers),
                opponent=lambda *_: choice(teachers),
            ))
        seeder.add_entity(
            Reservation, 5,
            dict(
                state=lambda *_: choice(Reservation.State.values),
                user=lambda *_: choice(students),
            ))

        inserted = seeder.execute()

        for thesis in map(lambda i: Thesis.objects.get(pk=i),
                          inserted[Thesis]):
            thesis.authors.add(choice(students))
            if random() > .85:
                thesis.authors.add(choice(students))
Ejemplo n.º 11
0
    def handle(self, *args, **options):
        total = options.get("total")
        seeder = Seed.seeder()
        categories = category_models.Category.objects.all()
        people = person_models.Person.objects.all()
        seeder.add_entity(
            Book,
            total,
            {
                "category": lambda x: random.choice(categories),
                "title": lambda x: seeder.faker.sentence(),
                "rating": lambda x: random.randint(1, 5),
                "writer": lambda x: random.choice(people),
            },
        )

        seeder.execute()

        self.stdout.write(self.style.SUCCESS(f"{total} {NAME} created!"))
 def handle(self, *args, **options):
     total = int(options.get("total"))
     seeder = Seed.seeder()
     users = User.objects.all()
     movies = Movie.objects.all()
     books = Book.objects.all()
     seeder.add_entity(
         Review,
         total,
         {
             "created_by": lambda x: choice(users),
             "text": lambda x: seeder.faker.sentence(),
             "movie": lambda x: choice(movies),
             "book": lambda x: choice(books),
             "rating": lambda x: randint(1, 5),
         },
     )
     seeder.execute()
     self.stdout.write(self.style.SUCCESS(f"{total} reviews created!"))
Ejemplo n.º 13
0
    def handle(self, *args, **options):
        # print(args, options)

        # get number from console
        number = options.get("number")
        seeder = Seed.seeder()

        # importing foreignkey field at models.py
        all_users = user_models.User.objects.all()
        all_rooms = room_models.Room.objects.all()
        print(all_users)

        # https://docs.djangoproject.com/en/3.0/ref/models/querysets/#when-querysets-are-evaluated
        # users_list = list(all_users)
        # print(users_list)

        # add entities to seeder packet
        seeder.add_entity(
            list_models.List,
            number,
            # foreignkey field wrapped as queryset
            {"user": lambda x: random.choice(all_users)},
        )

        # inject seeder packet to the databse

        # executing seeder
        created = seeder.execute()

        # allocating random rooms to list
        cleaned = flatten(list(created.values()))
        for pk in cleaned:
            # getting list class item with primary key
            list_model = list_models.List.objects.get(pk=pk)
            # list of rooms from random number to random number
            random_int1 = random.randint(0, 5)
            random_int2 = random.randint(6, 30)
            to_add = all_rooms[random_int1:random_int2]
            # below is "rooms" field at lists.models class List
            list_model.rooms.add(*to_add)

        # stand out
        self.stdout.write(self.style.SUCCESS(f"{number} {NAME} created"))
Ejemplo n.º 14
0
 def handle(self, *args, **options):
     number = options.get("number")
     seeder = Seed.seeder()
     all_rooms = Room.objects.all()
     all_users = users_models.User.objects.all()
     seeder.add_entity(
         Review, number, {
             "accuracy": lambda x: random.randint(0, 6),
             "communication": lambda x: random.randint(0, 6),
             "cleanliness": lambda x: random.randint(0, 6),
             "location": lambda x: random.randint(0, 6),
             "check_in": lambda x: random.randint(0, 6),
             "value": lambda x: random.randint(0, 6),
             "user": lambda x: random.choice(all_users),
             "room": lambda x: random.choice(all_rooms),
         })
     seeder.execute()
     self.stdout.write(
         self.style.SUCCESS(f"{number} reviews created successfully!"))
Ejemplo n.º 15
0
    def handle(self, *args, **options):
        number = options.get("number")
        seeder = Seed.seeder()
        all_users = user_models.User.objects.all()
        room_types = room_models.RoomType.objects.all()
        seeder.add_entity(
            room_models.Room, number, {
                "name": lambda x: seeder.faker.address(),
                "host": lambda x: random.choice(all_users),
                "room_type": lambda x: random.choice(room_types),
                "guests": lambda x: random.randint(1, 20),
                "price": lambda x: random.randint(1, 300),
                "beds": lambda x: random.randint(1, 5),
                "bedrooms": lambda x: random.randint(1, 5),
                "baths": lambda x: random.randint(1, 5),
            })
        created_photos = seeder.execute()
        created_clean = flatten(list(created_photos.values()))
        amenities = room_models.Amenity.objects.all()
        facilities = room_models.Facility.objects.all()
        rules = room_models.HoueseRule.objects.all()
        for pk in created_clean:
            room = room_models.Room.objects.get(pk=pk)
            for i in range(3, random.randint(10, 30)):
                room_models.Photo.objects.create(
                    caption=seeder.faker.sentence(),
                    room=room,
                    file=f"room_photos/{random.randint(1, 31)}.webp",
                )
            for a in amenities:
                magic_number = random.randint(0, 15)
                if magic_number % 2 == 0:
                    room.amenities.add(a)
            for f in facilities:
                magic_number = random.randint(0, 15)
                if magic_number % 2 == 0:
                    room.facilities.add(f)
            for r in rules:
                magic_number = random.randint(0, 15)
                if magic_number % 2 == 0:
                    room.house_rules.add(r)

        self.stdout.write(self.style.SUCCESS(f"{number} rooms created!"))
Ejemplo n.º 16
0
 def handle(self, *args, **options):
     number = options.get("number")
     seeder = Seed.seeder()
     users = users_models.User.objects.all()
     rooms = rooms_models.Room.objects.all()
     seeder.add_entity(
         lists_models.List,
         number,
         {
             "user": lambda x: random.choice(users),
         },
     )
     created = seeder.execute()
     clean = flatten(list(created.values()))
     for pk in clean:
         list_model = lists_models.List.objects.get(pk=pk)
         to_add = rooms[random.randint(0, 5) : random.randint(6, 30)]
         list_model.rooms.add(*to_add)
     self.stdout.write(f"{number} {NAME} creates")
Ejemplo n.º 17
0
    def handle(self, *args, **options):
        number = options.get('number')
        seeder = Seed.seeder()
        user = User.objects.filter(is_superuser=False)
        room = Room.objects.all()
        seeder.add_entity(
            Review, number, {
                'accuracy': lambda x: random.randint(0, 6),
                'communication': lambda x: random.randint(0, 6),
                'cleanliness': lambda x: random.randint(0, 6),
                'location': lambda x: random.randint(0, 6),
                'check_in': lambda x: random.randint(0, 6),
                'value': lambda x: random.randint(0, 6),
                'room': lambda x: random.choice(room),
                'user': lambda x: random.choice(user),
            })

        seeder.execute()
        self.stdout.write(self.style.SUCCESS(f'{number} reviews created!'))
Ejemplo n.º 18
0
    def handle(self, *args, **options):
        number = options.get("number")
        seeder = Seed.seeder()
        users = user_models.User.objects.all()
        rooms = room_models.Room.objects.all()
        seeder.add_entity(list_models.List, number, {
            "user": lambda x: random.choice(users),
        })

        created = seeder.execute()
        cleaned = flatten(list(created.values()))
        for pk in cleaned:
            list_model = list_models.List.objects.get(pk=pk)
            to_add = rooms[random.randint(0, 5):random.randint(6, 30)]
            # this will be a querset and I want elements inside of the queryset
            list_model.rooms.add(*to_add)

        self.stdout.write(
            self.style.SUCCESS(f"{NAME} are created successfully!"))
Ejemplo n.º 19
0
def seed():
    seeder = Seed.seeder()

    seeder.add_entity(Company, 20, {'logo': None})
    seeder.add_entity(DoorDevice, 20)
    seeder.execute()

    users = [{'email': '*****@*****.**', 'is_staff': True, 'is_superuser': True},
             {'email': '*****@*****.**', 'is_admin': True},
             {'email': '*****@*****.**', 'company': Company.objects.first()},
             {'email': '*****@*****.**'}]

    fake = Faker()
    for u in users:
        us = User(**u)
        us.first_name = fake.first_name()
        us.last_name = fake.last_name()
        us.set_password('123456')
        us.save()
Ejemplo n.º 20
0
 def handle(self, *args, **options):
     number = options.get("number")
     seeder = Seed.seeder()
     all_users = user_models.User.objects.all()
     all_rooms = room_models.Room.objects.all()
     seeder.add_entity(
         reservation_models.Reservation,
         number,
         {
             "status": lambda x: random.choice(["pending", "confirmed", "canceled"]),
             "guest": lambda x: random.choice(all_users),
             "room": lambda x: random.choice(all_rooms),
             "check_in": lambda x: datetime.now(),
             "check_out": lambda x: datetime.now()
             + timedelta(days=random.randint(3, 25)),
         },
     )
     seeder.execute()
     self.stdout.write(self.style.SUCCESS(f"{number} {NAME} created"))
Ejemplo n.º 21
0
    def handle(self, *args, **options):
        number = options.get("number")
        seeder = Seed.seeder()
        users = user_models.User.objects.all()
        rooms = room_models.Room.objects.all()[4:10]
        # index 4부터 10사이의 값으로만 제한함
        seeder.add_entity(list_models.List, number,
                          {"user": lambda x: random.choice(users)})

        created = seeder.execute()
        cleaned = flatten(list(created.values()))
        for pk in cleaned:
            list_model = list_models.List.objects.get(pk=pk)
            to_add = rooms[random.randint(0, 5):random.randint(6, 30)]

            list_model.rooms.add(*to_add)
            # array 안에 있는 값을 원할경우 * 추가

        self.stdout.write(self.style.SUCCESS(f"{number} {NAME} created!"))
Ejemplo n.º 22
0
    def handle(self, *args, **options):
        number = options.get("number", 1)
        users = user_models.User.objects.all()

        seeder = Seed.seeder()
        seeder.add_entity(
            conversation_models.Conversation,
            number,
        )
        conversations_pk = seeder.execute()
        conversations_pk = flatten(conversations_pk.values())

        for conversation_pk in conversations_pk:
            conversation_model = conversation_models.Conversation.objects.get(
                pk=conversation_pk)
            add_users = users[randint(0, 5):randint(5, 10)]
            conversation_model.participants.add(*add_users)

        self.stdout.write(self.style.SUCCESS(f"Create {number} {NAME}"))
Ejemplo n.º 23
0
    def handle(self, *args, **options):
        times = options.get('times')
        seeder = Seed.seeder()

        seeder.add_entity(
            Room, times, {
                'title': lambda x: random.choice(titles),
                'description': lambda x: seeder.faker.text(),
                'host': lambda x: random.choice(all_users),
            })
        created_rooms = seeder.execute()
        created_clean = flatten(list(created_rooms.values()))
        for pk in created_clean:
            room = Room.objects.get(pk=pk)
            for i in range(3, random.randint(5, 10)):
                RoomPhoto.objects.create(
                    file=f'rooms/{random.choice(room_photo_filenames)}',
                    caption=seeder.faker.sentence(),
                    room=room)
Ejemplo n.º 24
0
 def handle(self, *args, **options):
     total = int(options.get("total"))
     categories = Category.objects.all()
     writers = Person.objects.filter(kind=Person.KIND_WRITER)
     seeder = Seed.seeder()
     seeder.add_entity(
         Book,
         total,
         {
             "title": lambda x: seeder.faker.street_name(),
             "year": lambda x: seeder.faker.year(),
             "rating": lambda x: randint(1, 5),
             "cover_image": lambda x: f"books/{randint(1,20)}.jpg",
             "category": lambda x: choice(categories),
             "writer": lambda x: choice(writers),
         },
     )
     seeder.execute()
     self.stdout.write(self.style.SUCCESS(f"{total} books created!"))
Ejemplo n.º 25
0
    def handle(self, *args, **options):
        try:
            number = int(options.get("number"))

            self.stdout.write(self.style.SUCCESS("■ START CREATE USERS"))

            seeder = Seed.seeder()
            seeder.add_entity(User, number, {
                "is_staff": False,
                "is_superuser": False
            })
            seeder.execute()

            self.stdout.write(
                self.style.SUCCESS("■ SUCCESS CREATE ALL USERS!"))

        except Exception as e:
            self.stdout.write(self.style.ERROR(f"■ {e}"))
            self.stdout.write(self.style.ERROR("■ FAIL CREATE USERS"))
Ejemplo n.º 26
0
 def handle(self, *args, **options):
     numbers = options.get("numbers")
     seeder = Seed.seeder()
     user = user_model.User.objects.all()
     seeder.add_entity(
         air_model.Airplane,
         numbers,
         {
             "adult": lambda x: random.randint(0, 5),
             "children": lambda x: random.randint(0, 5),
             "users": lambda x: random.choice(user),
             "_departure": lambda x: datetime.now  # 모듈(필드)에 출발시간:지금 + timedeleta를 사용해 일 수를 더해준다.
             + timedelta(days=random.randint(2, 5)),
             "_return": lambda x: datetime.now()
             + timedelta(days=random.randint(7, 20)),
         },
     )
     seeder.execute()
     self.stdout.write(self.style.SUCCESS(f"{numbers} airplane created!"))
Ejemplo n.º 27
0
    def handle(self, *args, **options):
        number = options.get("number")
        seeder = Seed.seeder()
        all_users = user_models.User.objects.all()
        instrument = ad_models.instrumentChoice.objects.all()
        seeder.add_entity(
            ad_models.Advertisement,
            number,
            {
                "student": lambda x: random.choice(all_users),
                "instrument": lambda x: random.choice(instrument),
                "min_fee": lambda x: random.randint(10000, 30000),
                "max_fee": lambda x: random.randint(30000, 100000),
            },
        )

        created_ads = seeder.execute()
        created_clean = flatten(list(created_ads.values()))
        desired_lesson_days = ad_models.LessonDay.objects.all()
        lesson_type = ad_models.LessonType.objects.all()
        prefer_style = ad_models.PreferStyle.objects.all()

        for pk in created_clean:
            advertisement = ad_models.Advertisement.objects.get(pk=pk)

            for d in desired_lesson_days:
                magic_number = random.randint(0, 10)
                if magic_number % 2 == 0:
                    advertisement.desired_lesson_days.add(d)

            for t in lesson_type:
                magic_number = random.randint(0, 10)
                if magic_number % 2 == 0:
                    advertisement.lesson_type.add(t)

            for p in prefer_style:
                magic_number = random.randint(0, 10)
                if magic_number % 2 == 0:
                    advertisement.prefer_style.add(p)

        self.stdout.write(
            self.style.SUCCESS(f"{number} students' ads created!"))
Ejemplo n.º 28
0
 def handle(self, *args, **options):
     number = options.get('number')
     seeder = Seed.seeder()
     all_users = User.objects.all()
     room_types = RoomType.objects.all()
     amenities = Amenity.objects.all()
     facilities = Facility.objects.all()
     rules = HouseRule.objects.all()
     seeder.add_entity(
         Room, number, {
             'name': lambda x: seeder.faker.address(),
             'host': lambda x: random.choice(all_users),
             'room_type': lambda x: random.choice(room_types),
             'price': lambda x: random.randint(100, 10000) // 100 * 100,
             'beds': lambda x: random.randint(1, 5),
             'bedrooms': lambda x: random.randint(1, 5),
             'baths': lambda x: random.randint(1, 5),
             'guests': lambda x: random.randint(1, 10)
         })
     created_rooms = seeder.execute()
     created_clean = flatten(list(created_rooms.values()))
     for pk in created_clean:
         room = Room.objects.get(pk=pk)
         for i in range(3, random.randint(10, 17)):
             Photo.objects.create(
                 caption=seeder.faker.sentence(),
                 room=room,
                 file=f'rooms_photos/{random.randint(1,31)}.webp',
             )
         for a in amenities:
             idx = random.randint(0, 15)
             if idx % 2 == 0:
                 room.amenities.add(a)
         for f in facilities:
             idx = random.randint(0, 15)
             if idx % 2 == 0:
                 room.facilities.add(f)
         for r in rules:
             idx = random.randint(0, 15)
             if idx % 2 == 0:
                 room.house_rules.add(r)
     self.stdout.write(self.style.SUCCESS(f'{number} rooms are created!'))
Ejemplo n.º 29
0
    def handle(self, *args, **options):
        try:
            number = int(options.get("number"))

            self.stdout.write(self.style.SUCCESS("■ START CREATE REVIEWS"))

            users = User.objects.all()
            rooms = Room.objects.all()

            for idx, room in enumerate(rooms):
                seeder = Seed.seeder()
                seeder.add_entity(
                    Review,
                    number,
                    {
                        "accuracy": lambda x: randint(0, 6),
                        "communication": lambda x: randint(0, 6),
                        "cleanliness": lambda x: randint(0, 6),
                        "location": lambda x: randint(0, 6),
                        "check_in": lambda x: randint(0, 6),
                        "value": lambda x: randint(0, 6),
                        "room": room,
                        "user": lambda x: choice(users),
                    },
                )

                self.progress_bar(
                    idx + 1,
                    len(rooms),
                    prefix="■ PROGRESS",
                    suffix="Complete",
                    length=40,
                )

                seeder.execute()

            self.stdout.write(
                self.style.SUCCESS("■ SUCCESS CREATE ALL REVIEWS!"))

        except Exception as e:
            self.stdout.write(self.style.ERROR(f"■ {e}"))
            self.stdout.write(self.style.ERROR("■ FAIL CREATE REVIEWS"))
Ejemplo n.º 30
0
    def handle(self, *args, **options):
        number = options.get("number")
        seeder = Seed.seeder()
        all_users = user_models.User.objects.all()
        resumes = resume_models.Resume.objects.all()
        seeder.add_entity(
            review_models.Review,
            number,
            {
                "accuracy": lambda x: random.randint(1, 5),
                "communication": lambda x: random.randint(1, 5),
                "professionailsm": lambda x: random.randint(1, 5),
                "kindness": lambda x: random.randint(1, 5),
                "user": lambda x: random.choice(all_users),
                "resume": lambda x: random.choice(resumes),
            },
        )

        seeder.execute()
        self.stdout.write(self.style.SUCCESS(f"{number} reviews created!"))
Ejemplo n.º 31
0
    def handle(self, *args, **options):
        number = options.get("number")
        seeder = Seed.seeder()
        rooms = Room.objects.all()
        users = User.objects.all()
        seeder.add_entity(
            List,
            number,
            {
                "user": lambda x: random.choice(users),
            },
        )
        creat_rooms = seeder.execute()
        cleaned = flatten(list(creat_rooms.values()))
        for pk in cleaned:
            list_model = List.objects.get(pk=pk)
            to_add = rooms[random.randint(0, 5):random.randint(6, 10)]
            list_model.rooms.add(*to_add)

        self.stdout.write(self.style.SUCCESS(f"{number} Lists created"))
Ejemplo n.º 32
0
 def handle(self, *args, **options):
     users = get_user_model().objects.all()
     rooms = Room.objects.all()
     number = options.get("number")
     seeder = Seed.seeder()
     seeder.add_entity(
         List,
         number,
         {
             "user": lambda x: random.choice(users),
             "name": lambda x: seeder.faker.name(),
         },
     )
     new_lists = seeder.execute()
     list_pk_list = flatten(new_lists.values())
     for list_pk in list_pk_list:
         new_list = List.objects.get(pk=list_pk)
         room_in_list = random.sample(list(rooms), k=random.randint(3, 8))
         new_list.rooms.add(*room_in_list)
     print(f"{number}개의 리스트를 만들었습니다.")
Ejemplo n.º 33
0
    def handle_app_config(self, app_config, **options):
        if app_config.models_module is None:
            raise SeederCommandError('You must provide an app to seed')

        try:
            number = int(options['number'])
        except ValueError:
            raise SeederCommandError('The value of --number must be an integer')

        seeder = Seed.seeder()

        # don't diplay warnings about non-timezone aware datetimes
        import warnings
        warnings.showwarning = lambda *x: None

        for model in app_config.get_models():
            seeder.add_entity(model, number)
            print('Seeding %i %ss' % (number, model.__name__))

        pks = seeder.execute()
        print(pks)
Ejemplo n.º 34
0
import os
import django

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'web.settings')
django.setup()

from django_seed import Seed
from django.contrib.auth.models import User
from face_matcher.models import Upload


seeder = Seed.seeder()

seeder.add_entity(User, 5)
seeder.add_entity(Upload, 10, {
    'url': lambda x: 'http://lorempixel.com/400/200/',
})

inserted_pks = seeder.execute()