|
Vivek Anand |
327a4f |
# coding=utf-8
|
|
Vivek Anand |
327a4f |
"""
|
|
Vivek Anand |
327a4f |
(c) 2015-2017 - Copyright Red Hat Inc
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
Authors:
|
|
Vivek Anand |
327a4f |
Pierre-Yves Chibon <pingou@pingoured.fr></pingou@pingoured.fr>
|
|
Vivek Anand |
327a4f |
Vivek Anand <vivekanand1101@gmail.com></vivekanand1101@gmail.com>
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
"""
|
|
Vivek Anand |
327a4f |
|
|
Pierre-Yves Chibon |
67d1cc |
from __future__ import unicode_literals, absolute_import
|
|
Aurélien Bompard |
dcf6f6 |
|
|
Vivek Anand |
327a4f |
import unittest
|
|
Vivek Anand |
327a4f |
import sys
|
|
Vivek Anand |
327a4f |
import os
|
|
Vivek Anand |
327a4f |
|
|
Pierre-Yves Chibon |
73d120 |
sys.path.insert(
|
|
Pierre-Yves Chibon |
73d120 |
0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "..")
|
|
Pierre-Yves Chibon |
73d120 |
)
|
|
Vivek Anand |
327a4f |
|
|
Pierre-Yves Chibon |
930073 |
import pagure.lib.model
|
|
Pierre-Yves Chibon |
930073 |
import pagure.lib.query
|
|
Vivek Anand |
327a4f |
import tests
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
e28e4b |
|
|
Vivek Anand |
327a4f |
class TestStarProjectLib(tests.SimplePagureTest):
|
|
Pierre-Yves Chibon |
73d120 |
""" Test the star project feature of pagure """
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
def setUp(self):
|
|
Vivek Anand |
327a4f |
""" Set up the environnment for running each star project lib tests """
|
|
Vivek Anand |
327a4f |
super(TestStarProjectLib, self).setUp()
|
|
Vivek Anand |
327a4f |
tests.create_projects(self.session)
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
def test_update_star_project(self):
|
|
Pierre-Yves Chibon |
73d120 |
""" Test the update_star_project endpoint of pagure.lib """
|
|
Vivek Anand |
327a4f |
|
|
Pierre-Yves Chibon |
73d120 |
repo_obj = pagure.lib.query._get_project(self.session, "test")
|
|
Vivek Anand |
327a4f |
# test with invalud Star object, should return None
|
|
Pierre-Yves Chibon |
930073 |
msg = pagure.lib.query.update_star_project(
|
|
Pierre-Yves Chibon |
73d120 |
self.session, repo_obj, None, "pingou"
|
|
Vivek Anand |
327a4f |
)
|
|
Vivek Anand |
327a4f |
self.session.commit()
|
|
Vivek Anand |
327a4f |
self.assertEqual(msg, None)
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Vivek Anand |
e28e4b |
self.assertEqual(len(user_obj.stars), 0)
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
# test starring the project
|
|
Pierre-Yves Chibon |
73d120 |
repo_obj = pagure.lib.query._get_project(self.session, "test")
|
|
Pierre-Yves Chibon |
930073 |
msg = pagure.lib.query.update_star_project(
|
|
Pierre-Yves Chibon |
73d120 |
self.session, repo_obj, "1", "pingou"
|
|
Vivek Anand |
327a4f |
)
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
self.session.commit()
|
|
Pierre-Yves Chibon |
73d120 |
self.assertEqual(msg, "You starred this project")
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Vivek Anand |
e28e4b |
self.assertEqual(len(user_obj.stars), 1)
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
# test unstarring the project
|
|
Pierre-Yves Chibon |
73d120 |
repo_obj = pagure.lib.query._get_project(self.session, "test")
|
|
Pierre-Yves Chibon |
930073 |
msg = pagure.lib.query.update_star_project(
|
|
Pierre-Yves Chibon |
73d120 |
self.session, repo_obj, "0", "pingou"
|
|
Vivek Anand |
327a4f |
)
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
self.session.commit()
|
|
Pierre-Yves Chibon |
73d120 |
self.assertEqual(msg, "You unstarred this project")
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Vivek Anand |
e28e4b |
self.assertEqual(len(user_obj.stars), 0)
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
def test_star_project(self):
|
|
Pierre-Yves Chibon |
73d120 |
""" Test the _star_project endpoint of pagure.lib """
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
# test with not all arguments present
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Pierre-Yves Chibon |
73d120 |
repo_obj = pagure.lib.query._get_project(self.session, "test")
|
|
Pierre-Yves Chibon |
73d120 |
msg = pagure.lib.query._star_project(self.session, repo_obj, None)
|
|
Vivek Anand |
327a4f |
self.session.commit()
|
|
Vivek Anand |
327a4f |
self.assertEqual(msg, None)
|
|
Vivek Anand |
327a4f |
|
|
Pierre-Yves Chibon |
73d120 |
repo_obj = pagure.lib.query._get_project(self.session, "test")
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Pierre-Yves Chibon |
73d120 |
msg = pagure.lib.query._star_project(self.session, repo_obj, user_obj)
|
|
Vivek Anand |
327a4f |
self.session.commit()
|
|
Pierre-Yves Chibon |
73d120 |
self.assertEqual(msg, "You starred this project")
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Vivek Anand |
e28e4b |
self.assertEqual(len(user_obj.stars), 1)
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
def test_unstar_project(self):
|
|
Pierre-Yves Chibon |
73d120 |
""" Test the _unstar_project endpoint of pagure.lib """
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
# test with not all arguments present
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Pierre-Yves Chibon |
73d120 |
repo_obj = pagure.lib.query._get_project(self.session, "test")
|
|
Pierre-Yves Chibon |
73d120 |
msg = pagure.lib.query._unstar_project(self.session, repo_obj, None)
|
|
Vivek Anand |
327a4f |
self.session.commit()
|
|
Vivek Anand |
327a4f |
self.assertEqual(msg, None)
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
# the user hasn't starred the project before
|
|
Pierre-Yves Chibon |
73d120 |
repo_obj = pagure.lib.query._get_project(self.session, "test")
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Pierre-Yves Chibon |
930073 |
msg = pagure.lib.query._unstar_project(
|
|
Pierre-Yves Chibon |
73d120 |
self.session, repo_obj, user_obj
|
|
Vivek Anand |
327a4f |
)
|
|
Pierre-Yves Chibon |
73d120 |
self.assertEqual(msg, "You never starred the project")
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Vivek Anand |
e28e4b |
self.assertEqual(len(user_obj.stars), 0)
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
# star it for testing
|
|
Pierre-Yves Chibon |
73d120 |
msg = pagure.lib.query._star_project(self.session, repo_obj, user_obj)
|
|
Vivek Anand |
327a4f |
self.session.commit()
|
|
Pierre-Yves Chibon |
73d120 |
self.assertEqual(msg, "You starred this project")
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Vivek Anand |
e28e4b |
self.assertEqual(len(user_obj.stars), 1)
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
# the user starred and wishes to unstar
|
|
Pierre-Yves Chibon |
73d120 |
repo_obj = pagure.lib.query._get_project(self.session, "test")
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Pierre-Yves Chibon |
930073 |
msg = pagure.lib.query._unstar_project(
|
|
Pierre-Yves Chibon |
73d120 |
self.session, repo_obj, user_obj
|
|
Vivek Anand |
327a4f |
)
|
|
Vivek Anand |
327a4f |
self.session.commit()
|
|
Pierre-Yves Chibon |
73d120 |
self.assertEqual(msg, "You unstarred this project")
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Vivek Anand |
e28e4b |
self.assertEqual(len(user_obj.stars), 0)
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
def test_get_stargazer_obj(self):
|
|
Pierre-Yves Chibon |
73d120 |
""" Test the _get_stargazer_obj test of pagure.lib """
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
# star the project first
|
|
Pierre-Yves Chibon |
73d120 |
repo_obj = pagure.lib.query._get_project(self.session, "test")
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Pierre-Yves Chibon |
73d120 |
msg = pagure.lib.query._star_project(self.session, repo_obj, user_obj)
|
|
Vivek Anand |
327a4f |
self.session.commit()
|
|
Pierre-Yves Chibon |
73d120 |
self.assertEqual(msg, "You starred this project")
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Vivek Anand |
e28e4b |
self.assertEqual(len(user_obj.stars), 1)
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
# get the object now
|
|
Pierre-Yves Chibon |
73d120 |
repo_obj = pagure.lib.query._get_project(self.session, "test")
|
|
Pierre-Yves Chibon |
930073 |
star_obj = pagure.lib.query._get_stargazer_obj(
|
|
Pierre-Yves Chibon |
73d120 |
self.session, repo_obj, user_obj
|
|
Vivek Anand |
327a4f |
)
|
|
Vivek Anand |
327a4f |
self.assertEqual(isinstance(star_obj, pagure.lib.model.Star), True)
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
# unstar it and then try to get the object
|
|
Pierre-Yves Chibon |
73d120 |
repo_obj = pagure.lib.query._get_project(self.session, "test")
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Pierre-Yves Chibon |
930073 |
msg = pagure.lib.query._unstar_project(
|
|
Pierre-Yves Chibon |
73d120 |
self.session, repo_obj, user_obj
|
|
Vivek Anand |
327a4f |
)
|
|
Vivek Anand |
327a4f |
self.session.commit()
|
|
Pierre-Yves Chibon |
73d120 |
self.assertEqual(msg, "You unstarred this project")
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Vivek Anand |
e28e4b |
self.assertEqual(len(user_obj.stars), 0)
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
# we don't store if the user has unstarred, we delete the obj
|
|
Vivek Anand |
327a4f |
# so, we should get anything back in the query
|
|
Pierre-Yves Chibon |
73d120 |
repo_obj = pagure.lib.query._get_project(self.session, "test")
|
|
Pierre-Yves Chibon |
930073 |
star_obj = pagure.lib.query._get_stargazer_obj(
|
|
Pierre-Yves Chibon |
73d120 |
self.session, repo_obj, user_obj
|
|
Vivek Anand |
327a4f |
)
|
|
Vivek Anand |
327a4f |
self.assertEqual(star_obj is None, True)
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
def test_has_starred(self):
|
|
Pierre-Yves Chibon |
73d120 |
""" Test the has_starred endpoint of pagure.lib """
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
# star the project
|
|
Pierre-Yves Chibon |
73d120 |
repo_obj = pagure.lib.query._get_project(self.session, "test")
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Pierre-Yves Chibon |
73d120 |
msg = pagure.lib.query._star_project(self.session, repo_obj, user_obj)
|
|
Vivek Anand |
327a4f |
self.session.commit()
|
|
Pierre-Yves Chibon |
73d120 |
self.assertEqual(msg, "You starred this project")
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Vivek Anand |
e28e4b |
self.assertEqual(len(user_obj.stars), 1)
|
|
Vivek Anand |
327a4f |
|
|
Pierre-Yves Chibon |
930073 |
has_starred = pagure.lib.query.has_starred(
|
|
Pierre-Yves Chibon |
73d120 |
self.session, repo_obj, "pingou"
|
|
Vivek Anand |
327a4f |
)
|
|
Vivek Anand |
327a4f |
self.assertEqual(has_starred is True, True)
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
# unstar it and then test for has_starred
|
|
Pierre-Yves Chibon |
73d120 |
repo_obj = pagure.lib.query._get_project(self.session, "test")
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Pierre-Yves Chibon |
930073 |
msg = pagure.lib.query._unstar_project(
|
|
Pierre-Yves Chibon |
73d120 |
self.session, repo_obj, user_obj
|
|
Vivek Anand |
327a4f |
)
|
|
Vivek Anand |
327a4f |
self.session.commit()
|
|
Pierre-Yves Chibon |
73d120 |
self.assertEqual(msg, "You unstarred this project")
|
|
Pierre-Yves Chibon |
73d120 |
user_obj = pagure.lib.query.get_user(self.session, "pingou")
|
|
Vivek Anand |
e28e4b |
self.assertEqual(len(user_obj.stars), 0)
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
# check now, it should return False
|
|
Pierre-Yves Chibon |
930073 |
has_starred = pagure.lib.query.has_starred(
|
|
Pierre-Yves Chibon |
73d120 |
self.session, repo_obj, "pingou"
|
|
Vivek Anand |
327a4f |
)
|
|
Vivek Anand |
327a4f |
self.assertEqual(has_starred is False, True)
|
|
Vivek Anand |
327a4f |
|
|
Vivek Anand |
327a4f |
|
|
Pierre-Yves Chibon |
73d120 |
if __name__ == "__main__":
|
|
Vivek Anand |
327a4f |
unittest.main(verbosity=2)
|