def setUp(self): super(QuizAttemptResourceTest, self).setUp() self.username = '******' user = User.objects.get(username=self.username) api_key = get_api_key(user) self.api_key = api_key.key self.url = get_api_url('quizattempt')
def setUp(self): super(TrackerResourceTest, self).setUp() self.username = '******' user = User.objects.get(username=self.username) api_key = get_api_key(user=user) self.api_key = api_key.key self.url = get_api_url('tracker')
def test_post_not_allowed(self): self.username = '******' user = User.objects.get(username='******') api_key = get_api_key(user=user) self.api_key = api_key.key self.url = get_api_url('v2', 'points') self.assertHttpMethodNotAllowed(self.api_client.post(self.url, format='json', data={}))
def test_dne_course_shortname_normal(self): tracker_count_start = Tracker.objects.all().count() resource_url = get_api_url('v2', 'course', 'does-not-exist') \ + self.STR_DOWNLOAD response = self.api_client.get( resource_url, format='json', data=self.user_auth) self.assertEqual(response.status_code, 404) tracker_count_end = Tracker.objects.all().count() self.assertEqual(tracker_count_start, tracker_count_end)
def setUp(self): super(AwardsResourceTest, self).setUp() user = User.objects.get(username='******') api_key = get_api_key(user=user) self.auth_data = { 'username': '******', 'api_key': api_key.key, } self.url = get_api_url('awards')
def test_dne_course_teacher(self): tracker_count_start = Tracker.objects.all().count() resource_url = get_api_url('v2', 'course', 1123) + self.STR_DOWNLOAD response = self.api_client.get(resource_url, format='json', data=self.teacher_auth) self.assertEqual(response.status_code, 404) tracker_count_end = Tracker.objects.all().count() self.assertEqual(tracker_count_start, tracker_count_end)
def setUp(self): super(AwardsResourceTest, self).setUp() user = User.objects.get(username='******') api_key = get_api_key(user=user) self.auth_data = { 'username': '******', 'api_key': api_key.key, } self.url = get_api_url('v1', 'awards')
def test_archived_course_admin(self): tracker_count_start = Tracker.objects.all().count() update_course_visibility(1, False, True) resource_url = get_api_url('v2', 'course', 1) + self.STR_DOWNLOAD response = self.api_client.get( resource_url, format='json', data=self.admin_auth) self.assertEqual(response.status_code, 404) tracker_count_end = Tracker.objects.all().count() self.assertEqual(tracker_count_start, tracker_count_end)
def test_get_points(self): auth_header = self.create_apikey(username="******", api_key="1234") self.url = get_api_url('v2', 'points') res = self.api_client.get(self.url, format='json', authentication=auth_header) self.assertHttpOK(res) self.assertValidJSON(res.content)
def test_live_course_normal(self): tracker_count_start = Tracker.objects.all().count() resource_url = get_api_url('v1', 'course', 1) + self.STR_DOWNLOAD response = self.api_client.get( resource_url, format='json', data=self.user_auth) self.assertHttpOK(response) self.assertEqual(response['content-type'], self.STR_ZIP_EXPECTED_CONTENT_TYPE) tracker_count_end = Tracker.objects.all().count() self.assertEqual(tracker_count_start, tracker_count_end)
def test_archived_course_normal(self): tracker_count_start = Tracker.objects.all().count() update_course_status(1, CourseStatus.ARCHIVED) resource_url = get_api_url('v1', 'course', 1) + self.STR_DOWNLOAD response = self.api_client.get( resource_url, format='json', data=self.user_auth) self.assertEqual(response.status_code, 404) update_course_status(1, CourseStatus.LIVE) tracker_count_end = Tracker.objects.all().count() self.assertEqual(tracker_count_start, tracker_count_end)
def setUpClass(cls): super(UserProfileBaseTestCase, cls).setUpClass() cls.username = '******' cls.user = User.objects.get(username=cls.username) cls.api_key = get_api_key(user=cls.user).key cls.base_data = { 'email': '*****@*****.**', 'first_name': 'demo', 'last_name': 'user' } cls.url = get_api_url('v2', 'profileupdate')
def test_course_get_single(self): resource_url = get_api_url('course', 1) resp = self.api_client.get(resource_url, format='json', data=self.auth_data) self.assertHttpOK(resp) self.assertValidJSON(resp.content) # check course format course = self.deserialize(resp) self.assertTrue('shortname' in course) self.assertTrue('title' in course) self.assertTrue('description' in course) self.assertTrue('version' in course)
def test_course_shortname_get_multiple_found(self): # add a temp course with same shortname as another course = Course() course.shortname = 'anc1-all' course.version = 123456789 course.save() resource_url = get_api_url('v2', 'course', 'anc1-all') resp = self.api_client.get( resource_url, format='json', data=self.user_auth) self.assertRaises(MultipleObjectsReturned) self.assertEqual(300, resp.status_code)
def test_draft_course_admin(self): tracker_count_start = Tracker.objects.all().count() update_course_visibility(1, True, False) resource_url = get_api_url('v2', 'course', 1) + self.STR_DOWNLOAD response = self.api_client.get( resource_url, format='json', data=self.admin_auth) self.assertHttpOK(response) self.assertEqual(response['content-type'], self.STR_ZIP_EXPECTED_CONTENT_TYPE) update_course_visibility(1, False, False) tracker_count_end = Tracker.objects.all().count() self.assertEqual(tracker_count_start+1, tracker_count_end)
def test_get_apikeyinvalid(self): self.username = '******' user = User.objects.get(username='******') api_key = get_api_key(user=user) self.api_key = api_key.key self.url = get_api_url('v2', 'points') auth_header = self.create_apikey(username=self.username, api_key="badbadbad") self.assertHttpUnauthorized( self.api_client.get(self.url, format='json', authentication=auth_header))
def test_draft_course_staff(self): tracker_count_start = Tracker.objects.all().count() update_course_status(1, CourseStatus.DRAFT) resource_url = get_api_url('v1', 'course', 1) + self.STR_DOWNLOAD response = self.api_client.get( resource_url, format='json', data=self.staff_auth) self.assertHttpOK(response) self.assertEqual(response['content-type'], self.STR_ZIP_EXPECTED_CONTENT_TYPE) update_course_status(1, CourseStatus.LIVE) tracker_count_end = Tracker.objects.all().count() self.assertEqual(tracker_count_start, tracker_count_end)
def setUp(self): super(ProfileUpdateResourceTest, self).setUp() self.username = '******' self.user = User.objects.get(username=self.username) self.api_key = get_api_key(user=self.user).key self.base_data = { 'email': '*****@*****.**', 'first_name': 'demo', 'last_name': 'user', 'organisation': '' } self.url = get_api_url('v1', 'profileupdate')
def setUp(self): super(CourseResourceTest, self).setUp() user = User.objects.get(username='******') admin = User.objects.get(username='******') self.auth_data = { 'username': '******', 'api_key': get_api_key(user=user).key, } self.admin_auth = { 'username': '******', 'api_key': get_api_key(user=admin).key } self.url = get_api_url('course')
def setUp(self): super(CourseResourceTest, self).setUp() user = User.objects.get(username='******') admin = User.objects.get(username='******') self.auth_data = { 'username': '******', 'api_key': get_api_key(user=user).key, } self.admin_auth = { 'username': '******', 'api_key': get_api_key(user=admin).key } self.url = get_api_url('course')
def test_course_get_single(self): resource_url = get_api_url('course', 1) resp = self.api_client.get(resource_url, format='json', data=self.auth_data) self.assertHttpOK(resp) self.assertValidJSON(resp.content) # check course format course = self.deserialize(resp) self.assertTrue('shortname' in course) self.assertTrue('title' in course) self.assertTrue('description' in course) self.assertTrue('version' in course)
def test_no_objects(self): user = User.objects.get(username='******') api_key = get_api_key(user=user) self.auth_data = { 'username': '******', 'api_key': api_key.key, } self.url = get_api_url('v2', 'awards') resp = self.api_client.get(self.url, format='json', data=self.auth_data) self.assertValidJSON(resp.content) self.assertEqual(len(self.deserialize(resp)['objects']), 0)
def test_course_shortname_get_single_staff(self): resource_url = get_api_url('v2', 'course', 'anc1-all') resp = self.api_client.get( resource_url, format='json', data=self.staff_auth) self.assertHttpOK(resp) self.assertValidJSON(resp.content) # check course format course = self.deserialize(resp) self.assertTrue('shortname' in course) self.assertTrue('title' in course) self.assertTrue('description' in course) self.assertTrue('version' in course) self.assertTrue('author' in course) self.assertTrue('organisation' in course)
def test_tag_list(self): resource_url = get_api_url('tag', 2) resp = self.api_client.get(resource_url, format='json', data=self.auth_data) self.assertHttpOK(resp) self.assertValidJSON(resp.content) response_data = self.deserialize(resp) self.assertTrue('courses' in response_data) self.assertTrue('count' in response_data) self.assertTrue('name' in response_data) self.assertEqual(len(response_data['courses']), response_data['count']) for course in response_data['courses']: self.assertTrue('shortname' in course) self.assertTrue('title' in course) self.assertTrue('url' in course) self.assertTrue('version' in course)
def test_tag_list(self): resource_url = get_api_url('tag', 2) resp = self.api_client.get(resource_url, format='json', data=self.auth_data) self.assertHttpOK(resp) self.assertValidJSON(resp.content) response_data = self.deserialize(resp) self.assertTrue('courses' in response_data) self.assertTrue('count' in response_data) self.assertTrue('name' in response_data) self.assertEqual(len(response_data['courses']), response_data['count']) for course in response_data['courses']: self.assertTrue('shortname' in course) self.assertTrue('title' in course) self.assertTrue('url' in course) self.assertTrue('version' in course)
def setUp(self): super(DraftCourseAccessTest, self).setUp() self.user = User.objects.get(username='******') self.admin = User.objects.get(username='******') self.staff = User.objects.get(username='******') self.teacher = User.objects.get(username='******') self.manager = User.objects.get(username='******') self.viewer = User.objects.get(username='******') self.user_auth = { 'username': '******', 'api_key': get_api_key(user=self.user).key, } self.admin_auth = { 'username': '******', 'api_key': get_api_key(user=self.admin).key } self.staff_auth = { 'username': '******', 'api_key': get_api_key(user=self.staff).key } self.teacher_auth = { 'username': '******', 'api_key': get_api_key(user=self.teacher).key } self.manager_auth = { 'username': '******', 'api_key': get_api_key(user=self.manager).key } self.viewer_auth = { 'username': '******', 'api_key': get_api_key(user=self.viewer).key } self.live_course_url_pk = get_api_url('v2', 'course', 1) \ + self.STR_DOWNLOAD self.draft_course_url_pk = get_api_url('v2', 'course', 3) \ + self.STR_DOWNLOAD self.live_course_url_shortname = get_api_url('v2', 'course', 'anc1-all') \ + self.STR_DOWNLOAD self.draft_course_url_shortname = get_api_url('v2', 'course', 'draft-test') \ + self.STR_DOWNLOAD self.tag_url = get_api_url('v2', 'tag') self.draft_tag_url = get_api_url('v2', 'tag', 8) self.live_tag_url = get_api_url('v2', 'tag', 1) self.copy_test_courses()
def setUp(self): super(CourseResourceTest, self).setUp() user = User.objects.get(username='******') admin = User.objects.get(username='******') staff = User.objects.get(username='******') teacher = User.objects.get(username='******') self.user_auth = { 'username': '******', 'api_key': get_api_key(user=user).key, } self.admin_auth = { 'username': '******', 'api_key': get_api_key(user=admin).key } self.staff_auth = { 'username': '******', 'api_key': get_api_key(user=staff).key } self.teacher_auth = { 'username': '******', 'api_key': get_api_key(user=teacher).key } self.url = get_api_url('v1', 'course')
def setUp(self): super(ProgressResourceTest, self).setUp() self.user = User.objects.get(username='******') self.admin = User.objects.get(username='******') self.staff = User.objects.get(username='******') self.teacher = User.objects.get(username='******') self.user_auth = { 'username': '******', 'api_key': get_api_key(user=self.user).key, } self.admin_auth = { 'username': '******', 'api_key': get_api_key(user=self.admin).key } self.staff_auth = { 'username': '******', 'api_key': get_api_key(user=self.staff).key } self.teacher_auth = { 'username': '******', 'api_key': get_api_key(user=self.teacher).key } self.url = get_api_url('v2', 'progress')
def test_course_get_single_draft_admin_visible(self): resource_url = get_api_url('v1', 'course', 3) resp = self.api_client.get( resource_url, format='json', data=self.admin_auth) self.assertHttpOK(resp) self.assertValidJSON(resp.content)
def test_course_get_single_draft_nonvisible(self): resource_url = get_api_url('v1', 'course', 3) resp = self.api_client.get( resource_url, format='json', data=self.user_auth) self.assertHttpNotFound(resp)
def setUp(self): super(RegisterResourceTest, self).setUp() self.url = get_api_url('v2', 'register')
def test_course_get_acitivity_draft_admin_visible(self): resource_url = get_api_url('course', 3) + 'activity/' resp = self.api_client.get(resource_url, format='json', data=self.admin_auth) self.assertHttpOK(resp)
def test_course_get_activity_notfound(self): resource_url = get_api_url('v1', 'course', 999) + self.STR_ACTIVITY resp = self.api_client.get( resource_url, format='json', data=self.user_auth) self.assertHttpNotFound(resp)
def test_tag_not_found(self): resource_url = get_api_url('tag', 999) resp = self.api_client.get(resource_url, format='json', data=self.auth_data) self.assertHttpNotFound(resp)
def test_course_download_draft_nonvisible(self): resource_url = get_api_url('course', 3) + 'download/' resp = self.api_client.get(resource_url, format='json', data=self.auth_data) self.assertHttpNotFound(resp)
def test_course_download_file_course_not_found(self): resource_url = get_api_url('course', 999) + 'download/' resp = self.api_client.get(resource_url, format='json', data=self.auth_data) self.assertHttpNotFound(resp)
def test_course_download_file_course_not_found(self): resource_url = get_api_url('v1', 'course', 999) + self.STR_DOWNLOAD resp = self.api_client.get( resource_url, format='json', data=self.user_auth) self.assertHttpNotFound(resp)
def test_course_download_draft_nonvisible(self): resource_url = get_api_url('v1', 'course', 3) + self.STR_DOWNLOAD resp = self.api_client.get( resource_url, format='json', data=self.user_auth) self.assertHttpNotFound(resp)
def test_course_get_activity_notfound(self): resource_url = get_api_url('course', 999) + 'activity/' resp = self.api_client.get(resource_url, format='json', data=self.auth_data) self.assertHttpNotFound(resp)
def test_course_get_activity_draft_admin_visible(self): resource_url = get_api_url('v1', 'course', 3) + self.STR_ACTIVITY resp = self.api_client.get( resource_url, format='json', data=self.admin_auth) self.assertHttpOK(resp)
def test_delete_invalid(self): resource_url = get_api_url('quizattempt', 1192) self.assertHttpMethodNotAllowed(self.api_client.delete(resource_url, format='json'))
def test_course_get_single_draft_admin_visible(self): resource_url = get_api_url('course', 3) resp = self.api_client.get(resource_url, format='json', data=self.admin_auth) self.assertHttpOK(resp) self.assertValidJSON(resp.content)
def test_course_get_activity(self): resource_url = get_api_url('course', 1) + 'activity/' resp = self.api_client.get(resource_url, format='json', data=self.auth_data) self.assertHttpOK(resp)
def perform_request(self, course_id, user, path=''): resource_url = get_api_url('v2', 'course', course_id) + path resp = self.api_client.get(resource_url, format='json', data=user) return resp
def test_put_invalid(self): resource_url = get_api_url('tracker', 1) self.assertHttpMethodNotAllowed(self.api_client.put(resource_url))