示例#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)
示例#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)
示例#3
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)
    def handle(self, *args, **options):
        try:
            number = int(options.get("number"))

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

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

            seeder = Seed.seeder()
            seeder.add_entity(
                List,
                number,
                {"user": lambda x: choice(users)},
            )

            clean_pk_list = flatten(list(seeder.execute().values()))

            for idx, pk in enumerate(clean_pk_list):
                self.progress_bar(
                    idx + 1,
                    len(clean_pk_list),
                    prefix="■ PROGRESS",
                    suffix="Complete",
                    length=40,
                )
                list_model = List.objects.get(pk=pk)
                rooms = rooms[randint(0, 5):randint(6, len(rooms))]
                list_model.rooms.add(*rooms)

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

        except Exception as e:
            self.stdout.write(self.style.ERROR(f"■ {e}"))
            self.stdout.write(self.style.ERROR("■ FAIL CREATE LISTS"))
示例#5
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,
            {
                "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} create !"))
示例#6
0
    def handle(self, *args, **options):
        number = options.get("number")
        seeder = Seed.seeder()

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

        seeder.add_entity(
            Review,
            number,
            {
                "user": lambda x: random.choice(users),
                "room": lambda x: random.choice(rooms),
                "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),
            },
        )
        seeder.execute()

        self.stdout.write(self.style.SUCCESS(f"CREATE Reviews count : {number}"))
示例#7
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.HouseRule.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!"))
示例#8
0
    def handle(self, *args, **options):
        numbers = options.get("numbers")
        seeder = Seed.seeder()
        # 데이터베이스가 큰 경우에는 all로 가져오면 안되.
        users = users_model.User.objects.all()
        print(users)
        rooms = room_model.Room.objects.all()

        seeder.add_entity(
            reviews_model.Review,
            numbers,
            {
                "user": lambda x: random.choice(users),
                "cleanliness": lambda x: random.randint(0, 10),
                "ancillary": lambda x: random.randint(0, 10),
                "location": lambda x: random.randint(0, 10),
                "service": lambda x: random.randint(0, 10),
                "satisfaction": lambda x: random.randint(0, 10),
                "room": lambda x: random.choice(rooms),
            },
        )
        seeder.execute()

        self.stdout.write(self.style.SUCCESS(f"{numbers} reviews created!"))
示例#9
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(
            review_models.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(rooms),
                "user": lambda x: random.choice(users),
            },
        )
        seeder.execute()

        self.stdout.write(self.style.SUCCESS(f"{number} of reviews are created!"))
示例#10
0
    def handle(self, *args, **options):

        number = int(options.get("number", 1))
        rooms = room_models.Room.objects.all()
        users = user_models.User.objects.all()

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

        self.stdout.write(self.CRED + "Review 생성!" + self.CEND)
示例#11
0
    def handle(self, *args, **options):
        number = options.get("number")
        seeder = Seed.seeder()
        users = user_models.User.objects.all()
        contents = content_models.Content.objects.all()
        # 만약 .all()을 쓰기 싫다면 이렇게 하면 된다
        # contents = content_models.Content.objects.all()[3:10]
        seeder.add_entity(
            wishlist_models.Wishlist,
            number,
            {
                "user": lambda x: random.choice(users),
            },
        )

        created = seeder.execute()
        # 이상한 모양 정리
        cleaned = flatten(list(created.values()))
        for pk in cleaned:
            wishlist_model = wishlist_models.Wishlist.objects.get(pk=pk)
            to_add = contents[random.randint(0, 1):random.randint(2, 10)]
            wishlist_model.contents.add(*to_add)

        self.stdout.write(self.style.SUCCESS(f"{number} {name} created!"))
示例#12
0
 def handle(self, *args, **options):
     genre = category_model.MovieCategory.objects.all()
     people = person_model.Person.objects.all()
     total = options.get("total")
     seeder = Seed.seeder()
     seeder.add_entity(
         movie_model.Movie,
         total,
         {
             "genre": lambda x: random.choice(genre),
             "year": lambda x: random.randint(1900, 2030),
             "director": lambda x: random.choice(people),
         },
     )
     pks = seeder.execute()
     print(
         f"생성되는 오브젝트들의 ID입니다 {list(pks.values())[0]} ManyToMany필드가 포함되어 있으므로 출력합니다. \n 해당필드 : Actor"
     )
     cleand_pks = flatten(list(pks.values()))
     for pk in cleand_pks:
         select_movie = movie_model.Movie.objects.get(pk=pk)
         to_add_actors = people[0:random.randint(2, 10)]
         select_movie.actor.add(*to_add_actors)
     self.stdout.write(self.style.SUCCESS(f"{total}편의 영화가 만들어졌습니다"))
示例#13
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()
        # 만약 .all()을 쓰기 싫다면 이렇게 하면 된다
        # rooms = room_models.Room.objects.all()[3: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)

        self.stdout.write(self.style.SUCCESS(f"{number} {name} created!"))
示例#14
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(
            review_models.Review,
            number,
            {
                "accuracy": lambda x: random.randint(1, 5),
                "communication": lambda x: random.randint(1, 5),
                "cleanliness": lambda x: random.randint(1, 5),
                "location": lambda x: random.randint(1, 5),
                "check_in": lambda x: random.randint(1, 5),
                "value": lambda x: random.randint(1, 5),
                "user": lambda x: random.choice(users),  # 외래키 설정법
                "room": lambda x: random.choice(rooms),  # 외래키 설정법
            },
        )
        seeder.execute()  # 적용시키기 (필수)
        self.stdout.write(
            self.style.SUCCESS(f"{number} Review created!"))  # 오브젝트 생성
示例#15
0
    def handle(self, *args, **options):
        total = options.get('total')
        categories = Category.objects.all()
        directors = Person.objects.filter(kind=Person.KIND_DIRECTOR)
        actors = Person.objects.filter(kind=Person.KIND_ACTOR)
        seeder = Seed.seeder()
        seeder.add_entity(
            Movie, total, {
                "year": lambda x: seeder.faker.year(),
                "rating": lambda x: randint(1, 5),
                "category": lambda x: choice(categories),
                "director": lambda x: choice(directors),
                "cover_image_url": lambda x: choice(posters),
            })
        movies_pk = seeder.execute()
        cleaned_pks = flatten(list(movies_pk.values()))
        for pk in cleaned_pks:
            movie = Movie.objects.get(pk=pk)
            s_num = randint(5, math.floor(33 / 3))
            s_actors = choices(actors, k=s_num)
            for actor in s_actors:
                movie.cast.add(actor)

        self.stdout.write(self.style.SUCCESS(f'{total} movies created!'))
示例#16
0
 def handle(self, *args, **options):
     number = options.get("numbers", 1)
     seeder = Seed.seeder()
     users = user_models.User.objects.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(users),
             "room":
             lambda x: random.choice(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!"))
示例#17
0
    def handle(self, *args, **options):
        number = options.get("number")
        all_users = User.objects.all()
        rooms = Room.objects.all()
        seeder = Seed.seeder()
        seeder.add_entity(
            List,
            number,
            {
                "user": lambda x: random.choice(all_users),
            },
        )

        list_ids = flatten(list(seeder.execute().values()))
        for pk in list_ids:
            list_model = List.objects.get(pk=pk)
            start_slice = random.randint(0, len(rooms) / 2)
            end_slice = random.randint(len(rooms) / 2, len(rooms))
            to_add = rooms[start_slice:end_slice]
            list_model.rooms.add(*to_add)

        self.stdout.write(
            self.style.SUCCESS(f"Successfully created {number} lists")
        )
示例#18
0
    def handle(self, *args, **options):
        number = options.get("number")
        seeder = Seed.seeder()

        all_users = user_models.User.objects.all()
        rooms = room_models.Room.objects.all()

        seeder.add_entity(
            reviews_models.Review,
            number,
            {
                "accuracy": lambda x: random.randint(1, 5),
                "communication": lambda x: random.randint(1, 5),
                "cleanliness": lambda x: random.randint(1, 5),
                "location": lambda x: random.randint(1, 5),
                "check_in": lambda x: random.randint(1, 5),
                "value": lambda x: random.randint(1, 5),
                "user": lambda x: random.choice(all_users),
                "room": lambda x: random.choice(rooms),
            },
        )
        seeder.execute()

        self.stdout.write(self.style.SUCCESS(f"성공적으로 {number}개의 리뷰가 생성되었습니다."))
示例#19
0
    def handle(self, *args, **options):
        total = int(options.get('total'))
        categories = Category.objects.all()
        directors = Person.objects.filter(kind=Person.KIND_DIRECTOR)
        seeder = Seed.seeder()
        seeder.add_entity(
            Movie, total, {
                "year": lambda x: seeder.faker.year(),
                "rating": lambda x: randint(1, 5),
                "category": lambda x: choice(categories),
                "cover_image": lambda x: f"moviecover/_{randint(1,20)}.jpeg",
                "director": lambda x: choice(directors),
            })
        model = seeder.execute()
        lists = flatten(list(model.values()))

        for pk in lists:
            model = Movie.objects.get(pk=pk)

            for person in Person.objects.all():
                if randint(1, 100) % 2 and person.kind == Person.KIND_ACTOR:
                    model.cast.add(person)

        self.stdout.write(self.style.SUCCESS(f'{total} movies created!'))
示例#20
0
def run_seed(self, mode):
    """ Seed database based on mode
    :param mode: refresh / clear
    :return:
    """
    seeder = Seed.seeder()
    # Clear data from tables
    clear_data()
    if mode == MODE_CLEAR:
        return

    create_teams(seeder)
    create_user(seeder)
    create_coach(seeder)
    create_player(seeder)

    # create games and player statistics
    create_qualifier_games(seeder)
    create_quarter_final_games(seeder)
    create_semi_final_games(seeder)
    create_final_game(seeder)

    user_stat(seeder)
    team_stat()
示例#21
0
    def handle(self, *args, **options):
        number = options.get("number")
        seeder = Seed.seeder()
        all_users = users_models.User.objects.all()
        store_types = stores_models.StoreType.objects.all()
        seeder.add_entity(
            stores_models.Store,
            number,
            {
                "name": lambda x: seeder.faker.address(),
                "host": lambda x: random.choice(all_users),
                "store_type": lambda x: random.choice(store_types),
                "price": lambda x: random.randint(3000, 5000),
            },
        )
        created_photos = seeder.execute()
        created_clean = flatten(list(created_photos.values()))
        facilities = stores_models.Facility.objects.all()

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


            for f in facilities:
                magic_number = random.randint(0, 15)
                if magic_number % 2 == 0:
                    store.facilities.add(f)


        self.stdout.write(self.style.SUCCESS(f"{number} stores created!"))
示例#22
0
    def handle(self, *args, **options):
        number = options.get(
            "number", 1
        )  # The number typed after '--number'. The number is default=2 according to the above method.
        seeder = Seed.seeder()
        users = user_models.User.objects.all()
        rooms = room_models.Room.objects.all()
        seeder.add_entity(
            review_models.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(rooms),
                "user": lambda x: random.choice(users),
            },
        )
        seeder.execute()

        self.stdout.write(self.style.SUCCESS(f"{number} reviews created!"))
    def handle(self, *args, **options):

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

        seeder.add_entity(
            reservation_models.Reservation, number, {
                "status":
                lambda x: random.choice(["pending", "confirmed", "canceled"]),
                "check_in":
                lambda x: datetime.now(),
                "check_out":
                lambda x: datetime.now() + timedelta(days=random.randint(
                    3, 30)),
                "guest":
                lambda x: random.choice(users),
                "room":
                lambda x: random.choice(rooms),
            })
        seeder.execute()

        self.stdout.write(self.style.SUCCESS(f'{number} {NAME} created!'))
示例#24
0
    def handle(self, *args, **options):
        tags = [
            "Aniaml ",
            "Coffee",
            "Cake",
            "Room",
            "World",
            "Peace",
            "Elephant",
            "Cats",
            "Dogs",
        ]

        number = options.get("number")
        seeder = Seed.seeder()
        all_like = Like.objects.all()
        all_category = Category.objects.all()
        all_photos = Gallery.objects.all()
        seeder.add_entity(
            Post,
            number,
            {
                "title": lambda x: seeder.faker.name(),
                "body": lambda x: seeder.faker.text(),
                "intro": lambda x: seeder.faker.text(),
                "category": lambda x: random.choice(all_category),
                "read_time": lambda x: random.randint(1, 30),
                "photo": lambda x: random.choice(all_photos),
                "tags": lambda x: random.choice(tags),
                "slug": None
            },
        )

        seeder.execute()

        self.stdout.write(self.style.SUCCESS(f"{number} rooms created!"))
示例#25
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),
            },
        )  # 첫번째는 필드가 들어가고! 두번째는 갯수가들어간다!

        # number은 위에서 (argument를 받아오기위에 만들어짐) 받아온다!
        created = seeder.execute()  # -> 모든 룸을 creates photos에 넣는다!
        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)
            # to_add는 쿼리셋이 되는데 *을 통해서
            # array 안의 요소를 가져올수있따

        self.stdout.write(self.style.SUCCESS(f"{number} {NAME} created!!"))
 def handle(self, *args, **options):
     number = options.get(
         "number", 1
     )  # The number typed after '--number'. The number is default=2 according to the above method.
     seeder = Seed.seeder()
     users = user_models.User.objects.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(users),
             "room": lambda x: random.choice(rooms),
             "check_in": lambda x: datetime.now(),
             "check_out": lambda x: datetime.now()
             + timedelta(days=random.randint(3, 25)),
             # minimum three day stays, max 25 days
         },
     )
     seeder.execute()
     self.stdout.write(self.style.SUCCESS(f"{number} {NAME} created!"))
示例#27
0
 def handle(self, *args, **options):
     number = options.get("number")
     seeder = Seed.seeder()
     all_rooms = room_models.Room.objects.all()
     all_users = user_models.User.objects.all()
     seeder.add_entity(
         list_models.List,
         number,
         {
             "name": lambda x: seeder.faker.text(max_nb_chars=15),
             # random.choice is select element one of the list
             "user": lambda x: random.choice(all_users),
         },
     )
     created_pk_list = seeder.execute()
     clean_pk_list = flatten(list(created_pk_list.values()))
     for pk in clean_pk_list:
         list_record = list_models.List.objects.get(pk=pk)
         to_add_rooms = all_rooms[
             random.randint(0, 5) : random.randint(6, 30)  # noqa: E203
         ]
         # "*to_add_rooms" means not just list but all element of the list.
         list_record.rooms.add(*to_add_rooms)
     self.stdout.write(self.style.SUCCESS(f"{number} {NAME} created."))
示例#28
0
from datetime import timedelta
import pytest
from mock import patch
from django.utils.timezone import now
from django_seed import Seed
from login.models import UserActivity
from . import models, views, user_updater

seeder = Seed.seeder()

NOW = now()
FIVE_DAYS_AGO = (NOW - timedelta(5))
FOUR_DAYS_AGO = (NOW - timedelta(4))
THREE_DAYS_AGO = (NOW - timedelta(3))
TWO_DAYS_AGO = (NOW - timedelta(2))
YESTERDAY = (NOW - timedelta(1))


def make_users(User, state='A', last_login=NOW):
    seeder.add_entity(User, 3, {
        'last_login': lambda x: NOW,
    })
    seeder.execute()
    u = User.objects.first()
    u.last_login = last_login
    u.save()
    u.activity.state = state
    u.activity.save()


class TestUpdaterView:
示例#29
0
    def handle(self, *args, **options):
        number = options.get("number")
        seeder = Seed.seeder()
        all_users = User.objects.all()
        postings = posting_models.Post.objects.all()
        seeder.add_entity(
            posting_models.Post,
            number,
            {
                "author":
                lambda x: random.choice(all_users),
                "title":
                lambda x: seeder.faker.sentence(),
                "text":
                lambda x: seeder.faker.text(),
                "category":
                lambda x: random.randint(1, 7),
                "created":
                lambda x: fake.date_between(start_date=start_date,
                                            end_date="+30y"),
                "updated":
                lambda x: fake.date_between(start_date=start_date,
                                            end_date="+30y"),
            },
        )
        created_photos = seeder.execute()
        created_clean = flatten(list(created_photos.values()))
        for pk in created_clean:
            post_instance = posting_models.Post.objects.get(pk=pk)
            for i in range(3):
                posting_models.Photo.objects.create(
                    caption=seeder.faker.sentence(),
                    post=post_instance,
                    photo=f"room_photos/무한도전_로고.jpg",
                    created=lambda x: fake.date_between(start_date=start_date,
                                                        end_date="+30y"),
                    updated=lambda x: fake.date_between(start_date=start_date,
                                                        end_date="+30y"),
                )

        for pk in created_clean:
            post_instance = posting_models.Post.objects.get(pk=pk)
            for i in range(3):
                posting_models.Comment.objects.create(
                    post=post_instance,
                    author=random.choice(all_users),
                    text=seeder.faker.sentence(),
                    created=lambda x: fake.date_between(start_date=start_date,
                                                        end_date="+30y"),
                    updated=lambda x: fake.date_between(start_date=start_date,
                                                        end_date="+30y"),
                )

        for pk in created_clean:
            post_instance = posting_models.Post.objects.get(pk=pk)
            for i in range(3):
                posting_models.File.objects.create(
                    name=seeder.faker.sentence(),
                    post=post_instance,
                    files=f"room_photos/무한도전_로고.jpg",
                    created=lambda x: fake.date_between(start_date=start_date,
                                                        end_date="+30y"),
                    updated=lambda x: fake.date_between(start_date=start_date,
                                                        end_date="+30y"),
                )
        self.stdout.write(self.style.SUCCESS(f"{number} {NAME} Created"))
示例#30
0
 def handle(self, *args, **options):
     number = options.get("number")
     seeder = Seed.seeder()
     seeder.add_entity(User, number, {"is_staff": False, "is_superuser": False})
     seeder.execute()
     self.stdout.write(self.style.SUCCESS(f"{number} users created!"))
示例#31
0
 def setUp(self):
     self.seed1 = Seed()
     self.seed2 = Seed()
示例#32
0
def add_user():
    seeder = Seed.seeder()
    seeder.add_entity(User, 10)
示例#33
0
    def handle(self, *args, **options):
        rooms = Room.objects.all()
        rooms.delete()
        user_seeder = Seed.seeder()
        user_seeder.add_entity(
            User,
            20,
            {
                "uuid": lambda x: uuid.uuid4(),
                "avatar": None,
                "is_staff": False,
                "is_superuser": False,
            },
        )
        user_seeder.execute()

        users = User.objects.all()
        room_seeder = Seed.seeder()
        room_seeder.add_entity(
            Room,
            50,
            {
                "uuid": lambda x: uuid.uuid4(),
                "user": lambda x: random.choice(users),
                "name": lambda x: room_seeder.faker.street_address(),
                "lat": lambda x: random.uniform(40.706943, 40.822943),
                "lng": lambda x: random.uniform(-73.923917, -74.040000),
                "price": lambda x: random.randint(60, 300),
                "beds": lambda x: random.randint(0, 8),
                "bedrooms": lambda x: random.randint(0, 5),
                "bathrooms": lambda x: random.randint(0, 5),
                "instant_book": lambda x: random.choice([True, False]),
                "check_in": lambda x: datetime.now(),
                "check_out": lambda x: datetime.now(),
            },
        )
        room_seeder.execute()

        review_seeder = Seed.seeder()
        users = User.objects.all()
        rooms = Room.objects.all()
        review_seeder.add_entity(
            Review,
            1000,
            {
                "uuid": lambda x: uuid.uuid4(),
                "user": lambda x: random.choice(users),
                "text": lambda x: review_seeder.faker.text(),
                "room": lambda x: random.choice(rooms),
            },
        )
        review_seeder.execute()

        rooms = Room.objects.all()
        for room in rooms:
            for i in range(random.randint(3, 6)):
                Photo.objects.create(
                    caption=room_seeder.faker.sentence(),
                    room=room,
                    file=f"room_photos/{random.randint(1, 50)}.jpeg",
                )
        self.stdout.write(self.style.SUCCESS(f"Everything seeded"))
示例#34
0
 def setUp(self):
     self.seed1 = Seed()
     self.seed2 = Seed()
示例#35
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()