示例#1
0
    def test_get_by_id(self) -> None:
        """Get user by ID."""
        user = User("*****@*****.**")
        user.save()

        retrieved = User.get_by_id(user.id)
        assert retrieved == user
示例#2
0
    def test_get_by_id(self):
        """Get user by ID."""
        user = User('foo', '*****@*****.**')
        user.save()

        retrieved = User.get_by_id(user.id)
        assert retrieved == user
示例#3
0
def create_user(name, email, phone, about, birth, study, nationality, pic,
                department):
    try:
        if (User.objects.filter(email=email).exists() is False) and \
                (User.objects.filter(phone=phone).exists() is False):
            created_user = User(name=name.lower(),
                                email=email.lower(),
                                phone=phone,
                                birth=birth,
                                pic=pic,
                                about=about,
                                study=study,
                                nationality=nationality)
            created_user.save()
            group = None
            if department is not None:
                group = GroupReader.GroupReadService.read_group_by_name(
                    name=department)

            if group is not None:
                GroupManagement.add_member(created_user.id,
                                           group_id=group[0].id)
                return status.HTTP_201_CREATED
            else:
                return status.HTTP_201_CREATED
        else:
            return status.HTTP_417_EXPECTATION_FAILED
    except exceptions.FieldError:
        return status.HTTP_500_INTERNAL_SERVER_ERROR
    except exceptions.PermissionDenied:
        return status.HTTP_500_INTERNAL_SERVER_ERROR
示例#4
0
    def mutate(self, info: ResolveInfo, email: str, password: str,
               **kwargs) -> "CreateUser":
        """
        Creates a user in the database using the data sent by the user.

        :param info :type ResolveInfo
        :param email :type str: user's email
        :param password :type str: user's unhashed password
        :return :type CreateUser
        """
        user = User(email=email, password=password, **kwargs)
        user.save()

        return CreateUser(id=user.id, email=user.email)
示例#5
0
    def post(self):
        data = request.get_json()

        if User.find_by_username(data['username']):
            return {"message": "A user with this username already exists"}, 400

        if not User.query.all():
            user = User(**data)
            user.is_admin = True
            user.save()
            return {"message": "Admin successfully created"}, 201
        else:
            user = User(**data)
            user.is_admin = False
            user.save()
            return {"message": "User successfully created"}, 201
示例#6
0
    def register_user(phonenumber,
                      email,
                      password,
                      fname,
                      lname,
                      sex,
                      age,
                      address,
                      melli_code,
                      role='USER'):
        # TODO generate random pass and mail to user
        password = password
        password_hash = generate_password_hash(password)
        registration_time = datetime.utcnow()
        user = User(phonenumber=phonenumber,
                    password=password_hash,
                    email=email,
                    fname=fname,
                    lname=lname,
                    sex=sex,
                    age=age,
                    address=address,
                    melli_code=melli_code,
                    role=role,
                    datetime=registration_time)

        return user.save()
示例#7
0
def create_user(save=True):

    password = factory.password(10)
    user = User(
        login=factory.user_name(),
        email=factory.email(),
        password=User.hash_password(password),
        firstname=factory.first_name(),
        middlename=factory.name(),
        lastname=factory.last_name(),
        is_aproved=True,
    )

    if save:
        user.save()

    return user, password
示例#8
0
    def post(self):
        self.context['form'] = form = self.form(request.form)  # noqa: WPS204

        if not form.validate():
            return render_template(self.template,
                                   **self.context)  # noqa: WPS204

        login = request.form.get('login')
        email = request.form.get('email')
        password = request.form.get('password')
        firstname = request.form.get('firstname')
        middlename = request.form.get('middlename')
        lastname = request.form.get('lastname')
        image = request.form.get('email')
        pass_hash = User.hash_password(password)
        user = User(
            login=login,
            email=email,
            password=pass_hash.decode(),
            firstname=firstname,
            middlename=middlename,
            lastname=lastname,
            image=image,
            gravatar='gravatar',
        )
        if User.query.filter_by(login=login).first():
            flash('Логин уже занят.', 'error')
            return render_template(
                self.template,
                **self.context,
            )
        if User.query.filter_by(email=email).first():
            flash('Такой e-mail уже привязан к другому аккаунту.', 'error')
            return render_template(
                self.template,
                **self.context,
            )
        User.save(user)
        if send_mail_for_aprove(user):
            flash(
                'Вам на почту отправлена ссылка для подтверждения регистрации',
                'info')
        else:
            flash('Сбой отправки письма', 'error')
        return redirect(url_for('auth.login'))
示例#9
0
 def post(self):
     form = self.form(request.form)
     if not form.validate():
         return render_template(self.template, **{'form': form})
     login = request.form.get('login')
     email = request.form.get('email')
     password = request.form.get('password')
     firstname = request.form.get('firstname')
     middlename = request.form.get('middlename')
     lastname = request.form.get('lastname')
     image = request.form.get('email')
     pass_hash = User.hash_password(password)
     user = User(
         login=login,
         email=email,
         password=pass_hash.decode(),
         firstname=firstname,
         middlename=middlename,
         lastname=lastname,
         image=image,
     )
     if User.query.filter_by(login=login).first():
         return render_template(
             self.template,
             **{
                 'form': form,
                 'info': 'Логин уже занят'
             },
         )
     if User.query.filter_by(email=email).first():
         return render_template(
             self.template,
             **{
                 'form': form,
                 'info': 'Email уже занят'
             },
         )
     User.save(user)
     if send_mail_for_aprove(user):
         flash(
             'Вам на почту отправлена ссылка для подтверждения регистрации')
     else:
         flash('Сбой отправки письма')
     return redirect(url_for('auth.login'))
示例#10
0
 def test_password_is_nullable(self):
     """Test null password."""
     user = User(username='******', email='*****@*****.**')
     user.save()
     assert user.password is None
示例#11
0
 def test_created_at_defaults_to_datetime(self):
     """Test creation date."""
     user = User(username='******', email='*****@*****.**')
     user.save()
     assert bool(user.created_at)
     assert isinstance(user.created_at, dt.datetime)
示例#12
0
    def test(self):  # noqa: WPS210
        factory: Generator = Faker()

        chapter_name: str = factory.paragraph()
        chapter_order_number: int = 1

        chapter = Chapter(
            name=chapter_name,
            order_number=chapter_order_number,
        )
        Chapter.save(chapter)
        chapter = Chapter.query.get(1)

        question_text: str = factory.paragraph()
        question_order_number: int = 1
        question_user_id: int = 1
        question = Question(
            order_number=question_order_number,
            user=question_user_id,
            chapter_id=chapter.id,
            text=question_text,
        )
        Question.save(question)
        question = Question.query.get(1)

        user_username: str = factory.md5()[:8]
        user_password: str = factory.password(8)
        user_email: str = factory.email()
        user_firstname: str = factory.first_name()
        user = User(
            login=user_username,
            email=user_email,
            password=user_password,
            firstname=user_firstname,
            is_aproved=True,
        )
        User.save(user)

        answer_text: str = factory.paragraph()
        answer_is_approve: bool = True
        answer_question_id: int = 1
        answer_owner_id: int = 1

        answer = Answer(
            text=answer_text,
            is_approve=answer_is_approve,
            question_id=answer_question_id,
            owner_id=answer_owner_id,
        )
        Answer.save(answer)
        answer = Answer.query.get(1)
        self.assertEqual(answer.text, answer_text)
        self.assertEqual(answer.is_approve, answer_is_approve)
        self.assertEqual(answer.question_id, answer_question_id)

        response = self.client.get(
            url_for('answers.answer', question_id=question.id), )
        self.assert_200(
            response,
            url_for('answers.answer', question_id=question.id),
        )
示例#13
0
    def _foo_user(self) -> User:
        """Creates and saves foo@bar user."""

        user = User(email="*****@*****.**")
        user.save()
        return user