Example #1
0
    def create_user(self):
        """Create a new random user"""
        self.stdout.write("Creating a user")

        fakeprofile = _faker.profile()
        fakeprofile["password"] = "".join(
            random.choice(string.ascii_uppercase + string.digits)
            for _ in range(16))
        user = get_user_model().objects.create_user(fakeprofile["username"],
                                                    fakeprofile["mail"],
                                                    fakeprofile["password"])
        user.first_name = fakeprofile["name"].split()[0]
        user.last_name = " ".join(fakeprofile["name"].split()[1:])

        profile = _ProfileFactory()
        profile.user_id = user.id
        profile.birthday = fakeprofile["birthdate"]
        profile.website = fakeprofile["website"][0]

        igen = IconGenerator(5, 5)  # 5x5 blocks
        icon = igen.generate(
            user.username,
            480,
            480,
            padding=(10, 10, 10, 10),
            output_format="jpeg",
        )  # 620x620 pixels, with 10 pixels padding on each side
        profile.photo.save(fakeprofile["username"] + ".jpeg",
                           ContentFile(icon))

        membership = Membership()
        membership.user_id = user.id
        membership.since = _faker.date_time_between(start_date="-4y",
                                                    end_date="now",
                                                    tzinfo=None)
        membership.until = random.choice([
            _faker.date_time_between(start_date=membership.since,
                                     end_date="+2y",
                                     tzinfo=None),
            None,
        ])
        membership.type = random.choice(
            [t[0] for t in Membership.MEMBERSHIP_TYPES])

        user.save()
        profile.save()
        membership.save()