def create_category_bulk(category_nb, root_category_nb=10, testing=True): if not is_testing() and testing: raise RuntimeError("Not in testing environment. Set testing to False to silence this error.") faker = Factory.create() root_category_list = [RootCategory.objects.create(name=faker.word()) for i in range(root_category_nb)] return [Category.objects.create(root_category=choice(root_category_list), name=faker.word()) for i in range(category_nb)]
def create_profile_bulk(profile_nb, testing=True): """Utility function that creates `profile_nb` profiles. All fields are randomly generated.""" if not is_testing() and testing: raise RuntimeError("Not in testing environment. Set testing to False to silence this error.") faker = Factory.create() user_dict = [{"first_name": faker.first_name(), "last_name": faker.last_name(), "email_address": faker.email(), "password": generate_random_password()} for i in range(profile_nb)] profile_list = [] for user_data in user_dict: user = get_user_model().objects.create_user(username=user_data["email_address"], password=user_data["password"]) profile = Profile.objects.create(user=user, first_name=user_data["first_name"], last_name=user_data["last_name"]) profile_list.append(profile) return profile_list
def create_post_bulk(post_nb, text_content=None, post_type=None, user_list=None, testing=True): if not is_testing() and testing: raise RuntimeError("Not in testing environment. Set testing to False to silence this error.") faker = Factory.create() category_list = create_category_bulk(category_nb=30, testing=testing) if user_list is None: user_list = [p.user for p in create_profile_bulk(profile_nb=10)] if text_content is None: text_content = faker.paragraph() if post_type is None: post_type = choice((Post.OFFER, Post.NEED)) return [Post.objects.create(user=choice(user_list), category=choice(category_list), text_content=text_content, type=post_type, remote=choice((True, False))) for i in range(post_nb)]