def test_queries_create_row_for_user_if_none_exits(self):
        """
        Test to check that add_coins, remove_coins, and return_user_coins
        create a row in UserCoins for the user if none exists
        """
        new_user_1 = User(username="******",
                          email="*****@*****.**",
                          password="******")
        new_user_1.save()
        self.assertEqual(len(UserCoins.objects.filter(user=new_user_1)), 0)
        add_coins(new_user_1, 100, 4)
        self.assertEqual(len(UserCoins.objects.filter(user=new_user_1)), 1)

        new_user_2 = User(username="******",
                          email="*****@*****.**",
                          password="******")
        new_user_2.save()
        self.assertEqual(len(UserCoins.objects.filter(user=new_user_2)), 0)
        remove_coins(new_user_2, 200, 6)
        self.assertEqual(len(UserCoins.objects.filter(user=new_user_2)), 1)

        new_user_3 = User(username="******",
                          email="*****@*****.**",
                          password="******")
        new_user_3.save()
        self.assertEqual(len(UserCoins.objects.filter(user=new_user_3)), 0)
        return_user_coins(new_user_3)
        self.assertEqual(len(UserCoins.objects.filter(user=new_user_3)), 1)
Beispiel #2
0
 def perform_create(self, serializer):
     serializer.save()
     sender = UserDetails(user=User(user_id=serializer.data['sender_id']))
     recipient = UserDetails(user=User(
         user_id=serializer.data['recipient_id']))
     print(sender)
     print(recipient)
     try:
         conversion = Conversation.objects.get(sender=sender,
                                               recipient=recipient)
         conversion.unseen_message += 1
         conversion.save()
     except Conversation.DoesNotExist as e:
         conversion = Conversation(
             sender=sender,
             recipient=recipient,
             last_message=serializer.data['message'],
         )
         conversion.save()
     try:
         conversion = Conversation.objects.get(sender=recipient,
                                               recipient=sender)
         conversion.unseen_message += 1
         conversion.last_message = serializer.data['message']
         conversion.save()
     except Conversation.DoesNotExist as e:
         conversation = Conversation(
             sender=recipient,
             recipient=sender,
             last_message=serializer.data['message'],
             unseen_message=1)
         conversation.save()
Beispiel #3
0
def test_setup():
    user1 = User(email="*****@*****.**", permission="ADMIN")
    user1.set_password("123")
    user1.save()
    user2 = User(email="*****@*****.**", permission="MANAGER")
    user2.set_password("123")
    user2.save()
    user3 = User(email="*****@*****.**", permission="USER")
    user3.set_password("123")
    user3.save()
    meal1 = Meal.objects.create(user=user1,
                                description="Banana",
                                date="2020-01-01",
                                time="12:00:00",
                                calories=120)
    meal2 = Meal.objects.create(user=user2,
                                description="Pasta",
                                date="2020-03-05",
                                time="18:20:00",
                                calories=400)
    meal3 = Meal.objects.create(user=user3,
                                description="Cake",
                                date="2020-10-10",
                                time="22:50:00",
                                calories=380)
    token1 = Token.objects.create(key="12345", user=user1)
    token2 = Token.objects.create(key="56789", user=user2)
    token3 = Token.objects.create(key="010101", user=user3)
    def setUpTestData(cls):
        user_1 = User(username="******")
        user_1.save()
        user_2 = User(username="******", email="*****@*****.**")
        user_2.save()
        user_3 = User(username="******", password="******", email="*****@*****.**")
        user_3.save()

        suggestion_1 = Suggestion(is_feature=True, user=user_1, title="Test Suggestion 1", details="Any old details",
                                  delay_submission=False)
        suggestion_1.save()
        suggestion_2 = Suggestion(is_feature=True, user=user_2, title="Test Suggestion 2", details="Any old details",
                                  delay_submission=True)
        suggestion_2.save()
        suggestion_3 = Suggestion.objects.create(is_feature=True, user=user_2, title="Test Suggestion 3",
                                                 details="Any old details", delay_submission=False)
        suggestion_3.save()

        user_1_usercoins = UserCoins(user=user_1, coins=100)
        user_1_usercoins.save()
        user_2_usercoins = UserCoins(user=user_2, coins=500)
        user_2_usercoins.save()
        user_3_usercoins = UserCoins(user=user_3, coins=0)
        user_3_usercoins.save()

        coins_purchase_1 = CoinsPurchase(name="coins purchase 1", coins_price=200)
        coins_purchase_1.save()
        coins_purchase_2 = CoinsPurchase(name="coins purchase 2", coins_price=500)
        coins_purchase_2.save()
        suggestion_coins_purchase = CoinsPurchase(name="Suggestion", coins_price=500)
        suggestion_coins_purchase.save()
        upvote_coins_purchase = CoinsPurchase(name="Upvote", coins_price=100)
        upvote_coins_purchase.save()
        promote_feature_purchase = CoinsPurchase(name="Feature Suggestion Promotion", coins_price=600)
        promote_feature_purchase.save()

        coins_store_item_500 = StoreItem(name="500 coins", price=0, delivery_required=False, is_coins=True,
                                         coins_amount=500)
        coins_store_item_500.save()
        coins_store_item_200 = StoreItem(name="200 coins", price=2, delivery_required=False, is_coins=True,
                                         coins_amount=200)
        coins_store_item_200.save()
        coins_store_item_1000 = StoreItem(name="1000 coins", price=10, delivery_required=False, is_coins=True,
                                          coins_amount=1000)
        coins_store_item_1000.save()

        non_coins_store_item = StoreItem(name="not coins", price=5, delivery_required=True, is_coins=False)
        non_coins_store_item.save()
        non_coins_store_item_2 = StoreItem(name="not coins 2", price=10, delivery_required=True, is_coins=False)
        non_coins_store_item_2.save()
        non_coins_store_item_3 = StoreItem(name="not coins 3", price=99, delivery_required=True, is_coins=False)
        non_coins_store_item_3.save()

        order_1 = Order(user=user_1)
        order_1.save()
        order_2 = Order(user=user_2)
        order_2.save()
        order_3 = Order(user=user_3)
        order_3.save()
Beispiel #5
0
 def setUp(self):
     self.orig_user = User(email='*****@*****.**')
     self.user_list = List(owner=self.orig_user)
     self.user_list.save()
     self.second_user = User(email='*****@*****.**')
     self.request = HttpRequest()
     self.request.POST['shared_with'] = '*****@*****.**'
     self.request.user = Mock()
Beispiel #6
0
 def get_context_data(self, **kwargs):
     context = super().get_context_data(**kwargs)
     context['message_list'] = UserMessage.objects.filter(Q(receiver=self.request.user,
                                                         sender=User(pk=self.kwargs.get('pk'))
                                                         )| Q(receiver=User(pk=self.kwargs.get('pk')),sender=self.request.user))
     context['message_sender'] = self.request.user
     context['message_receiver'] = User.objects.get(pk=self.kwargs.get('pk'))
     return context
Beispiel #7
0
 def authenticate(self):
     self.john = User(username="******")
     self.john.set_password("hunter2")
     self.john.save()
     self.alice = User(username="******")
     self.alice.set_password("hunter2")
     self.alice.save()
     self.client_setup()
     self.client.force_authenticate(user=self.john)
Beispiel #8
0
    def create(self, validated_data):
        """
            This method saves the new users info after the validation is done

            Parameters:
            -----------
            validated_data: dic
                It contains the same data as above method; but its validated at
                this point.

            Returns
            --------
            user: User type object
        """

        user_type = validated_data['type']
        user = User(username=validated_data['username'],type=validated_data\
                                                                    ['type'])
        user.set_password(validated_data['password'])

        #Saving the user would trigger a signal which then saves the same user
        #to another model DonorProfile, FundRaiserProfile or MGOProfile, based
        #on its type.
        #CHANGES:This should be other way around and needs to be changed later.
        user.save()
        return user
Beispiel #9
0
def register(request):
    if request.session.get('is_login'):
        return HttpResponseRedirect(reverse('miunottingham:main_page'))
    if request.method == "POST":
        regform = RegisterForm(request.POST)
        if regform.is_valid():
            username = regform.cleaned_data['username']
            password1 = regform.cleaned_data['password1']
            password2 = regform.cleaned_data['password2']
            email = regform.cleaned_data['email']
            if User.objects.filter(username=username):
                message = 'username already exists'
                return render(request, 'accounts/register.html', locals())
            else:
                if User.objects.filter(email=email):
                    message = 'email address already exists'
                    return render(request, 'accounts/register.html', locals())
                else:
                    if password1 != password2:
                        message = 'password does not match'
                        return render(request, 'accounts/register.html',
                                      locals())
            new_user = User()
            new_user.username = username
            # encrypt password
            new_user.password = hash_code(password2)
            new_user.email = email
            new_user.has_confirmed = True
            new_user.save()
            return HttpResponseRedirect(reverse('accounts:login_test'))
    regform = RegisterForm()
    return render(request, 'accounts/register.html', locals())
Beispiel #10
0
    def test_display_name(self):
        """Test that User.display_name uses first_name or username."""
        bob = User(username='******')
        self.assertEqual('bob', bob.display_name)

        bob.first_name = 'Robert'
        self.assertEqual('Robert', bob.display_name)
 def safe_mutate(cls, root, info, **kwargs):
     code = kwargs.pop('invitation_code', None)
     host = None
     if code:
         try:
             host = User.objects.get(invitation_code=code)
         except User.DoesNotExist:
             return cls.error(invitation_code=['کد نامعتبر است.'])
     first_name = kwargs.get('first_name')
     last_name = kwargs.get('last_name')
     phone = kwargs.get('phone')
     password = kwargs.get('password')
     user = User(first_name=first_name,
                 last_name=last_name,
                 username=phone,
                 phone=phone,
                 password=password)
     user.generate_code()
     try:
         user.full_clean()
     except ValidationError as e:
         e.error_dict.pop('username', None)
         raise e
     user.send_code_by_sms()
     user.save()
     if host:
         Invitation(host, None).reward(user)
     return cls(user=user)
Beispiel #12
0
 def restore_object(self, attrs, instance=None):
     if instance:
         instance.username = attrs.get('username', instance.username)
         instance.email = attrs.get('email', instance.email)
         instance.mobile = attrs.get('mobile', instance.mobile)
         return instance
     return User(**attrs)
 def create(self, validated_data):
     password = validated_data.pop('password')
     user = User(**validated_data)
     user.username = validated_data.get('email')
     user.set_password(password)
     user.save()
     return user
Beispiel #14
0
def student_create(request):
    body_unicode = request.body.decode('utf-8')
    body = json.loads(body_unicode)

    major = Major.objects.get(name=body['major'])
    level = Level.objects.get(level=body['level'])
    modeOfEntry = ModeOfEntry.objects.get(name=body['modeOfEntry'])
    dateBirth = body['dateBirth']

    user = User()
    user.username = body['username']
    user.password = dateBirth
    user.first_name = body['first_name']
    user.last_name = body['last_name']
    user.email = body['email']
    user.type = '7'
    user.sex = body['sex']
    user.save()

    student = Student()
    student.user = user
    student.major = major
    student.level = level
    student.modeOfEntry = modeOfEntry
    student.status = '1'
    student.dateBirth = dateBirth
    student.save()

    serial = StudentSerializer(student)
    return JsonResponse(serial.data, safe=False, status=200)
Beispiel #15
0
    def test_order_txn(self):
        order = Order(full_name='Test',
                      phone_number='012345',
                      country='gb',
                      postcode='ab123')
        order.save()
        user = User(email='*****@*****.**', first_name='Test', last_name='Case')
        user.save()
        ticket = Ticket(requester=user, title='Title')
        ticket.save()
        transaction = OrderTransaction(order=order, ticket=ticket, cost=2.2)
        transaction.save()

        print('TestCheckoutModels: OrderTransaction - test_order_txn \n \
               Expected: {0}, Actual: {1} \n \
               Expected: {2}, Actual: {3} \n \
               Expected: {4}, Actual: {5} \n \
               Expected: {6}, Actual: {7} \n \
               Expected: {8}, Actual: {9}'.format(
            'Test', transaction.order.full_name, '012345',
            transaction.order.phone_number, user, transaction.ticket.requester,
            'Title', transaction.ticket.title, '2.2', transaction.cost))

        self.assertEqual(transaction.order.full_name, 'Test')
        self.assertEqual(transaction.order.phone_number, '012345')
        self.assertEqual(transaction.ticket.requester, user)
        self.assertEqual(transaction.ticket.title, 'Title')
        self.assertEqual(transaction.cost, 2.2)
Beispiel #16
0
 def create(self, *args, **kwargs):
     serializer = self.serializer_class(data=self.request.data)
     serializer.is_valid(raise_exception=True)
     username = serializer.data.get('username')
     phone = serializer.data.get('phone')
     email = serializer.data.get('email')
     dob = serializer.data.get('dob')
     gender = serializer.data.get('gender')
     image = serializer.validated_data.get('userImage')
     user = User()
     user.set_password(serializer.data.get('password'))
     user.email = email
     user.username = username
     user.phone = phone
     user.userImage = image
     user.gender = gender
     user.dob = dob
     # ut.confirmation_email(email, user)
     user.save()
     token, created = Token.objects.get_or_create(user=user)
     return Response(data={
         'status': status.HTTP_200_OK,
         'token': token.key
     },
                     status=status.HTTP_200_OK)
Beispiel #17
0
    def test_forum_comment(self):
        user = User(email='*****@*****.**', first_name='Test', last_name='Case')
        user.save()
        topic = ForumTopic(topic_title='Test')
        topic.save()
        comment = ForumComment(forum_topic=topic,
                               author=user,
                               comment='my comment')
        comment.save()
        reply = ForumCommentReply(forum_comment=comment,
                                  author=user,
                                  comment='my reply')
        reply.save()

        print('TestForumModels: ForumComment - test_forum_comment \n \
               Expected: {0}, Actual: {1} \n \
               Expected: {2}, Actual: {3} \n \
               Expected: {4}, Actual: {5} \n \
               Expected: {6}, Actual: {7}'.format(
            'Test', comment.forum_topic.topic_title, 'my comment',
            comment.comment, '*****@*****.**', comment.author.email, 'my reply',
            reply.comment))

        self.assertEqual(comment.forum_topic.topic_title, 'Test')
        self.assertEqual(comment.comment, 'my comment')
        self.assertEqual(comment.author.email, '*****@*****.**')
        self.assertEqual(reply.comment, 'my reply')
Beispiel #18
0
    def post(self, request):
        username_ = request.POST["username"]
        email_ = request.POST["email"]
        password_ = request.POST["password"]
        password2_ = request.POST["confirmpassword"]

        if password2_ != password_:
            return JsonResponse({
                "status": "fail!",
                "message": "password not equal"
            })

        same = User.objects.filter(username=username_)

        if same:
            return JsonResponse({
                "status": "fail!",
                "message": "username repeated!"
            })

        new_user = User(username=username_, password=password_, email=email_)
        new_user.image = request.FILES['image']
        new_user.bio = request.POST['bio']
        new_user.save()
        token = Token.objects.create(user=new_user)
        auth.login(request, new_user)
        return JsonResponse({
            "status": "True",
            "message": f"welcome {username_} dear!",
            'token': f'Token {token.key}'
        })
Beispiel #19
0
    def authenticate(self, token):
        response_profile = requests.get(
            'https://graph.facebook.com/me/',
            params={
                'access_token': token,
            }
        )

        facebook_profile = response_profile.json()

        if 'error' in facebook_profile:
            return None

        try:
            user = User.objects.get(facebook_id=facebook_profile.get('id'))
        except User.DoesNotExist:
            user = User(facebook_id=facebook_profile.get('id'))

        if facebook_profile.get('id') in settings.FACEBOOK_ADMINS:
            user.is_staff = True
            user.is_superuser = True

        user.username = facebook_profile.get('id')
        user.set_unusable_password()
        user.facebook_access_token = token
        user.email = facebook_profile.get('email', '')
        user.first_name = facebook_profile.get('first_name')
        user.last_name = facebook_profile.get('last_name')
        user.save()

        return user
def register(request):
    if request.method == 'POST':
        user_name = request.POST['UserName']
        email = request.POST['Email']
        Image = request.POST['Image']
        password = request.POST['Password']
        reenterpassword = request.POST['Reenter password']
        if password == reenterpassword:
            if User.objects.filter(user=user_name).exists():
                messages.info(request, "user taken")
                return redirect('accounts:register')
            elif User.objects.filter(email=email).exists():
                messages.info(request, "email taken")
                return redirect('accounts:register')
            else:
                user = User(user=user_name, email=email, password=password)
                user.save()
                messages.info(request, 'user created')
        else:
            messages.info(request, "Password Incorrect")
            return redirect('accounts:register')
        return redirect(
            '/')  #here URL is same but by method identify GET or Post
    else:
        return render(request, 'accounts/signup.html')
Beispiel #21
0
  def create(self, validated_data):
    email = validated_data['email']
    password = validated_data['password2']
    first_name = validated_data['first_name']
    last_name = validated_data['last_name']
    user_type = validated_data['user_type']

    user_obj = User(
      email = email,
      is_active = True,
      first_name = first_name,
      last_name=last_name,
      user_type=user_type
    )
       
    user_obj.set_password(password)
    
    user_obj.save()
    
    if int(user_obj.user_type) == 3:
      account = stripe.Account.create(
        type='custom',
        country='US'
      )
      
      event_profile_obj = EventProfile(
        user=user_obj,
        account_id = account.id
      )
      event_profile_obj.save()
    return validated_data
Beispiel #22
0
 def create(self, validated_data):
     user_obj = User(name=validated_data.get('name'),
                     age=validated_data.get('age'),
                     image=validated_data.get('image'))
     user_obj.set_password(validated_data.get('password'))
     user_obj.save()
     return user_obj
Beispiel #23
0
def test_login_success(client):
    url = reverse('login')
    url_check = reverse('my-profile')

    # create user
    password = '******'
    email = '*****@*****.**'
    user = User(email=email, username=email)
    user.set_password(password)
    user.save()

    # 1 test that client does not have access to url_check resourse
    response = client.get(url_check)
    assert response.status_code == 302

    # 2
    payload = {
        'username': email,
        'password': password,
    }
    response = client.post(url, data=payload)
    assert response.status_code == 302

    # 3
    response = client.get(url_check)
    assert response.status_code == 200
Beispiel #24
0
    def post(self, request, *args, **kwargs):
        form = SignupForm(data=request.POST or None)
        response_data = {}

        if form.is_valid():
            user_name = request.POST['user_name']
            password = request.POST['password']
            password_confirm = request.POST['password_confirm']
            email = request.POST['email']

            if password_confirm == password:
                new_user = User(user_name=user_name, email=email)
                new_user.set_password(password)
                new_user.save()

                # print('user_id',new_user.id)
                response_data['success'] = 'yes'
                response_data['success_msg'] = 'Successfully signed up'
                login(request, new_user)
                # return redirect('/home/')
            else:
                # print('password_confirm !== password')
                response_data['success'] = 'no'
                response_data['success_msg'] = 'password dont match'
        else:
            # print('form is not valid',form.errors)
            response_data['success'] = 'no'
            response_data['success_msg'] = 'form not valid'

        return JsonResponse(response_data)
Beispiel #25
0
    def test_user_string_representation(self):
        user = User(email='*****@*****.**',
                    name='Someone',
                    password='******')
        user.save()

        self.assertEqual(str(user), user.email)
Beispiel #26
0
    def post(self, request):
        """User registration view."""
        email = request.data['email']
        #email = User.normalize_email(request.data['email'])
        if not email_is_valid(email):
            return Response("Please use a different email address provider.",
                            status=status.HTTP_200_OK)

        if User.objects.filter(email=email).exists():
            return Response(
                "Email already in use, please use a different email address.",
                status=status.HTTP_200_OK)

        now = timezone.now()

        user = User(email=email,
                    first_name=request.data['first_name'],
                    last_name=request.data['last_name'],
                    is_active=True,
                    last_login=now,
                    date_joined=now)
        user.set_password(request.data['password'])

        user.save()
        return Response("SUCCESS", status=status.HTTP_200_OK)
Beispiel #27
0
    def post(self, request):
        username = request.POST.get("username")
        password = request.POST.get("password")
        result = login_authenticate(username, password)
        if result['status'] == 0:
            if User.objects.filter(username=username).exists():
                user = User.objects.get(username=username)
            else:
                user = User()

            # 开启LDAP的认证通过后更新用户密码
            if settings.ENABLE_LDAP:
                if user.password != make_password(password):
                    user.password = make_password(password)
            user.password2 = cryptor.encrypt(password)
            user.save()
            try:
                # 添加到默认组,默认组设置最小权限
                user = User.objects.get(username=username)
                group = Group.objects.get(id=1)
                user.groups.add(group)
            except Exception:
                print('无id=1的权限组,无法默认添加')

            # 调用了django内置登录方法,防止管理后台二次登录
            login(request, user)
        else:
            pass
        return JsonResponse(result)
Beispiel #28
0
 def create(self, validated_data):
     password = validated_data.pop("password")
     print(validated_data)
     user = User(**validated_data)
     user.set_password(password)
     user.save()
     return user
Beispiel #29
0
    def test_can_increase_upvote_size(self):
        """
        Test to check that  add_suggestion/comment_upvote_to_database
        increases the length of the upvote table by 1
        """
        original_update_table = Upvote.objects.all()
        original_update_table_length = len(original_update_table)

        new_user = User(username="******",
                        email="*****@*****.**",
                        password="******")
        new_user.save()
        suggestions = Suggestion.objects.all()
        suggestion = choice(suggestions)
        add_suggestion_upvote_to_database(new_user, suggestion)

        upvote_table_after_suggestion_upvote = Upvote.objects.all()
        upvote_table_after_suggestion_upvote_length = len(
            upvote_table_after_suggestion_upvote)

        self.assertEqual((original_update_table_length + 1),
                         upvote_table_after_suggestion_upvote_length)

        comments = Comment.objects.all()
        comment = choice(comments)
        add_comment_upvote_to_database(new_user, comment)

        upvote_table_after_comment_upvote = Upvote.objects.all()
        upvote_table_after_comment_upvote_length = len(
            upvote_table_after_comment_upvote)

        self.assertEqual((upvote_table_after_suggestion_upvote_length + 1),
                         upvote_table_after_comment_upvote_length)
Beispiel #30
0
def create_user(request):
    if not request.method == 'POST':
        return HttpResponseNotAllowed(['POST'])

    post_params = json.loads(request.body)
    form = UserRegistrationForm(data=post_params)
    if form.is_valid():
        user = User()
        user.email = form.cleaned_data.get('email')
        user.set_password(form.cleaned_data.get('password'))
        with transaction.atomic():
            user.save()
            token = Token.create_token()
            user.token_set.add(token)

        logger.info("New user created. Email: %s", user.email)
        user_dict = user.to_dict()
        user_dict['access_token'] = token.token
        data = json.dumps(user_dict)
        return HttpResponse(data)
    else:
        logger.error("Invalid form to create new user. Errors: %s",
                     form.errors)
        data = json.dumps(form.errors)
        return HttpResponseBadRequest(data)