def test_like_review():
    user = User.objects.get(pk=2)
    review = Review.objects.get(pk=5)
    likes_num_before = review.likes_num
    UserLikes.toggle_like(user, review)
    assert UserLikes.objects.filter(user_id=user, review_id=review).exists()
    assert review.likes_num == likes_num_before + 1
Beispiel #2
0
def like_review(request, user_id, review_id):
    if request.META.get('HTTP_REFERER') is None:
        return redirect('landing')
    try:
        user = User.objects.get(pk=user_id)
        review = Review.objects.get(pk=review_id)
        UserLikes.toggle_like(user, review)
        return HttpResponseRedirect(request.META.get('HTTP_REFERER'))  # stay in referring page
    except ObjectDoesNotExist:
        return redirect('landing')
    def generate_data(apps, schema_editor):
        from homepage.models import UserLikes
        from homepage.models import Review
        from homepage.models import User

        likes_test_data = [
            (User.objects.get(pk=1), Review.objects.get(pk=1)),
            (User.objects.get(pk=1), Review.objects.get(pk=2)),
            (User.objects.get(pk=2), Review.objects.get(pk=3)),
            (User.objects.get(pk=3), Review.objects.get(pk=1)),
        ]

        # testUser1 likes Reviews 1, 2 for course 10111
        # testUser2 likes Review 3 for course 10221
        # testUser3 likes Review 1 for course 10111
        with transaction.atomic():
            for user, review in likes_test_data:
                UserLikes(user_id=user, review_id=review).save()
Beispiel #4
0
def course(request, id):
    try:
        course = Course.objects.get(pk=id)
        reviews = Review.objects.filter(course=id).order_by('-likes_num')
        preq = Prerequisites.get_prerequisites_for_course(course)
        liked_reviews = []
        is_following = False
        if not request.user.is_anonymous:
            liked_reviews = UserLikes.get_liked_reviews_by_user_for_course(request.user, course)
            is_following = FollowedUserCourses.is_following_course(request.user, course)
        return render(request, 'homepage/courses/course.html', {
            'id': id,
            'course': course,
            'reviews': reviews,
            'liked_reviews': liked_reviews,
            'is_following': is_following,
            'preq': preq
        })
    except ObjectDoesNotExist:
        return redirect('courses')
def test_get_users_who_liked_review():
    users = UserLikes.get_users_who_liked_review(Review.objects.get(pk=3))
    assert (len(users) == 1) and users[0].id == 2
def test_get_reviews_liked_by_user_for_course():
    liked_reviews = UserLikes.get_liked_reviews_by_user_for_course(
        User.objects.get(pk=2), Course.objects.get(pk=10221))
    assert (len(liked_reviews) == 1) and (liked_reviews[0].id == 3)
    assert liked_reviews[0].course_id == 10221
def test_get_reviews_liked_by_user():
    liked_reviews = UserLikes.get_liked_reviews_by_user(User.objects.get(pk=2))
    assert (len(liked_reviews) == 1) and (liked_reviews[0].id == 3)
def test_add_new_user_like():
    relation = UserLikes(user_id=User.objects.get(pk=3),
                         review_id=Review.objects.get(pk=5))
    relation.save()
    assert UserLikes.objects.filter(pk=relation.id).exists()
Beispiel #9
0
def reviews(request):
    reviews = Review.main_feed()
    liked_reviews = []
    if not request.user.is_anonymous:
        liked_reviews = UserLikes.get_liked_reviews_by_user(request.user)
    return render(request, 'homepage/reviews/reviews.html', {'reviews': reviews, 'liked_reviews': liked_reviews})