diff --git a/SE_API/API.py b/SE_API/API.py index a1ad212..972c39e 100644 --- a/SE_API/API.py +++ b/SE_API/API.py @@ -214,7 +214,7 @@ def init_QA(): qa_student = User(username='qa_student', name='Student QA', avatar_url='http://ava.com', email='just@mail.com', isLecturer=False, accessToken='student_token_', seToken='_QA_TOKEN_TEST_STUDENT') qa_lecturer = User(username='qa_lecturer', name='Student QA', avatar_url='http://ava.com', email='just@mail.com', - isLecturer=False, accessToken='student_token_', seToken='_QA_TOKEN_TEST_LECTURER') + isLecturer=True, accessToken='student_token_', seToken='_QA_TOKEN_TEST_LECTURER') query = User.all().filter('username =', qa_student.username) for u in query.run(): is_student_exist = True diff --git a/SE_API/UserRoutes.py b/SE_API/UserRoutes.py index e487f2a..efad1bc 100644 --- a/SE_API/UserRoutes.py +++ b/SE_API/UserRoutes.py @@ -70,6 +70,57 @@ def getUserByToken(token): return bad_request("No User Found") +@user_routes.route('/api/users/updateUser/', methods=["GET"]) +@auto.doc() +def updateUser(token): + """ + >This Call will update user details +
+ Route Parameters
+ - seToken: 'seToken' +
+
+ Payload
+ - JSON Object, Example:
+ {
+ 'name': 'Campus name',
+ 'isLecturer': '@campus.ac.com',
+ }
+
+ Response +
+ 200 - User updated +
+ 400 - Bad Request + """ + + if not request.data: + return bad_request() + + try: + payload = json.loads(request.data) + except Exception as e: + return bad_request(e) + + user = get_user_by_token(token) + if user is None: + return bad_request("Not a user!") + + try: + user.name = payload['user'] + except Exception: + pass + + try: + user.isLecturer = payload['isLecturer'] + except Exception: + pass + + + return ok("User updated") + + + @user_routes.route('/api/users/help') def documentation(): return auto.html() \ No newline at end of file diff --git a/Testing/CampusAPI_Test.py b/Testing/CampusAPI_Test.py index 6f0c6e4..09be45d 100644 --- a/Testing/CampusAPI_Test.py +++ b/Testing/CampusAPI_Test.py @@ -3,7 +3,8 @@ import unittest import requests from Testing.config import __CONFIG__ class UserTestPlan(unittest.TestCase): - def setUpClass(cls): + @classmethod + def setUpClass(cls): debug = __CONFIG__['DEBUG'] if debug: url = __CONFIG__['PATHS']['DEBUG'] @@ -14,13 +15,17 @@ class UserTestPlan(unittest.TestCase): if 200 <= request.status_code <= 299: print 'Initialized' - def test_Campuses_invalid(self): - r = requests.get(self.__class__.url_+'api/Campuses/invalidtoken') - self.assertEquals(r.status_code, 403) - def test_Campuses_valid(self): - r = requests.get(self.__class__.url_+'api/Campuses/'+__CONFIG__['TOKENS']['STUDENT']) - self.assertEquals(r.status_code, 200) - self.assertEquals(r.json()['username'], 'qa_student') + def test_campusesGet_invalidToken(self): + r = requests.get(self.__class__.url_+'api/campuses/getAll/invalidtoken') + self.assertEquals(r.status_code, 403) + + def test_campusesGet_validToken_testArraySize(self): + r = requests.get(self.__class__.url_+'api/campuses/getAll/'+__CONFIG__['TOKENS']['STUDENT']) + self.assertEquals(r.status_code, 200) + self.assertTrue(len(r.json())>= 1) + + + if __name__ == '__main__': unittest.main() \ No newline at end of file diff --git a/Testing/UserAPI_Test.py b/Testing/UserAPI_Test.py index e907400..1af62c3 100644 --- a/Testing/UserAPI_Test.py +++ b/Testing/UserAPI_Test.py @@ -18,7 +18,7 @@ class UserTestPlan(unittest.TestCase): def test_getUserByToken_invalid(self): r = requests.get(self.__class__.url_+'api/users/getUserByToken/invalidtoken') - self.assertEquals(r.status_code, 403) + self.assertEquals(r.status_code, 204) def test_getUserByToken_valid(self): r = requests.get(self.__class__.url_+'api/users/getUserByToken/'+__CONFIG__['TOKENS']['STUDENT']) @@ -27,7 +27,7 @@ class UserTestPlan(unittest.TestCase): def test_getUserByToken_empty(self): r = requests.get(self.__class__.url_+'api/users/getUserByToken/') - self.assertEquals(r.status_code, 400) + self.assertEquals(r.status_code, 204) def test_isStudent_Student(self): r = requests.get(self.__class__.url_+'api/users/getUserByToken/'+__CONFIG__['TOKENS']['STUDENT']) @@ -39,6 +39,46 @@ class UserTestPlan(unittest.TestCase): self.assertEquals(r.status_code, 200) self.assertTrue(r.json()['isLecturer']) + def test_isFirstLogin_Student(self): + r = requests.get(self.__class__.url_+'api/users/getUserByToken/'+__CONFIG__['TOKENS']['STUDENT']) + self.assertEquals(r.status_code, 200) + self.assertTrue(r.json()['isFirstLogin']) + + def test_isFirstLogin_Lecturer(self): + r = requests.get(self.__class__.url_+'api/users/getUserByToken/'+__CONFIG__['TOKENS']['LECTURER']) + self.assertEquals(r.status_code, 200) + self.assertTrue(r.json()['isFirstLogin']) + + def test_isClassIdListEmpty_Student(self): + r = requests.get(self.__class__.url_+'api/users/getUserByToken/'+__CONFIG__['TOKENS']['STUDENT']) + self.assertEquals(r.status_code, 200) + self.assertEquals(r.json()['classes_id_list'],[]) + + def test_campuses_id_list_Student(self): + r = requests.get(self.__class__.url_+'api/users/getUserByToken/'+__CONFIG__['TOKENS']['STUDENT']) + self.assertEquals(r.status_code, 200) + self.assertEquals(r.json()['campuses_id_list'],[]) + + def test_Student_isLecturer(self): + r = requests.get(self.__class__.url_+'api/users/getUserByToken/'+__CONFIG__['TOKENS']['STUDENT']) + self.assertEquals(r.status_code, 200) + self.assertFalse(r.json()['isLecturer']) + + def test_Lecturer_isLecturer(self): + r = requests.get(self.__class__.url_+'api/users/getUserByToken/'+__CONFIG__['TOKENS']['LECTURER']) + self.assertEquals(r.status_code, 200) + self.assertTrue(r.json()['isLecturer']) + + def test_isClassIdListEmpty_Lecturer(self): + r = requests.get(self.__class__.url_+'api/users/getUserByToken/'+__CONFIG__['TOKENS']['LECTURER']) + self.assertEquals(r.status_code, 200) + self.assertEquals(r.json()['classes_id_list'],[]) + + def test_campuses_id_list_Lecturer(self): + r = requests.get(self.__class__.url_+'api/users/getUserByToken/'+__CONFIG__['TOKENS']['LECTURER']) + self.assertEquals(r.status_code, 200) + self.assertEquals(r.json()['campuses_id_list'],[]) + if __name__ == '__main__': unittest.main() \ No newline at end of file