def setUp(self): # super(CourseTest, self).setUp() # # self.course = CourseFactory.create() # self.user = UserFactory.create(username=self.USERNAME, email=self.EMAIL, password=self.PASSWORD) # self.client.login(username=self.USERNAME, password=self.PASSWORD) self.user_info_with_email = {'username': '******', 'password': '******', 'email': '*****@*****.**'} self.c_group = CategoryGroup() self.c_group.slug = '/' self.c_group.name = 'test_group' self.c_group.active = 1 self.c_group.desp = 'desp' self.c_group.owner = 'owner' self.c_group.save() self.course_cate = CourseCategory() self.course_cate.parent_id = 1 self.course_cate.name = 'test' self.course_cate.group = self.c_group self.course_cate.save() self.course = Course() self.course.course_id = 'xuetangX/testcs1/2014_T1' self.course.status = 1 self.course.serialized = 1 self.course.save() self.course.category.add(self.course_cate) self.course.save() self.km = KnowledgeMap() self.km.name = 'km_name' self.km.save()
def get(self, request, format=None): """ Get all the courses. """ param = { 'offset': int(request.GET.get('offset', 0)), 'limit': int(request.GET.get('limit', 10)), 'timestamp': int(request.GET.get('timestamp', 0)), 'with_category': request.GET.get('with_category', 1), 'categories': request.GET.get('categories', '') } screen = get_screen_size(request) thumbnail_size = get_thumbnail_size(screen, position='list') categories = [each for each in param['categories'].split(',') if each] verified_courses_id = CourseMode.get_verified_option_courses() query = Course.exclude_vpc().filter(status__gte=0, course_type=0).exclude(course_id__in=verified_courses_id) if param['timestamp']: query = query.filter( modified__gt=datetime.utcfromtimestamp(param['timestamp'])) if categories: query = query.filter(category__id__in=categories).distinct() total = query.count() courses = query[param['offset']:param['offset'] + param['limit']] result = { "courses": CourseWithCategorySerializer(thumbnail_size, courses, many=True).data if param['with_category'] else CourseSerializer(thumbnail_size, courses, many=True).data, "total": total, } return Response(result)
def get(self, request, format=None): response = { 'courses': [], 'status': 'success' } courses = Course.exclude_vpc() for course in courses: course_dict = {} course_dict['id'] = course.course_id course_dict['display_name'] = course.name response['courses'].append(course_dict) return Response(response)
def get(self, request, format=None): response = {} verified_courses_id = CourseMode.get_verified_option_courses() courses = Course.exclude_vpc().filter( status__gte=0, course_type=0).exclude(course_id__in=verified_courses_id).order_by('-status', '-id') response['data'] = fill_in_courses(courses, request.user) response['status'] = 'success' # Add selected for homepage courses and add knowledge_id for knowledge # map courses homepage_course_list = HomepageCourses.objects.order_by( "order")[0:8] selected_list = [] for homepage_course in homepage_course_list: course = homepage_course.course selected_list.append(course.course_id) for course in response['data']: if course['course_id'] in selected_list: course['selected'] = True else: course['selected'] = False knowledge_list = {} knowledge_map_list = CourseInKnowledgeMap.objects.all() for c in knowledge_map_list: knowledge_list[c.course_id.course_id] = { 'id': c.map_id_id, 'level': c.level, } for course in response['data']: if course['course_id'] in knowledge_list: course['knowledge_map'] = knowledge_list[course['course_id']] else: course['knowledge_map'] = {} return Response(response)
def get(self, request, format=None): """ Get all the recent courses. """ param = { 'offset': int(request.GET.get('offset', 0)), 'limit': int(request.GET.get('limit', 10)), } screen = get_screen_size(request) thumbnail_size = get_thumbnail_size(screen, position='detail') local_tz = pytz_timezone(settings.TIME_ZONE) now = datetime.now(local_tz) recent_time = datetime(now.year, now.month, now.day, tzinfo=local_tz) recent_utc_time = recent_time.astimezone(UTC) verified_courses_id = CourseMode.get_verified_option_courses() query = Course.exclude_vpc().filter( status__gte=0, start__gt=recent_utc_time, course_type=0).exclude(course_id__in=verified_courses_id).order_by('start') total = query.count() courses = query[param['offset']:param['offset'] + param['limit']] result = { "courses": CourseSerializer(thumbnail_size, courses, many=True).data, "total": total, } return Response(result)
class CourseTest(APITestCase): # USERNAME = "******" # EMAIL = "*****@*****.**" # PASSWORD = "******" def setUp(self): # super(CourseTest, self).setUp() # # self.course = CourseFactory.create() # self.user = UserFactory.create(username=self.USERNAME, email=self.EMAIL, password=self.PASSWORD) # self.client.login(username=self.USERNAME, password=self.PASSWORD) self.user_info_with_email = {'username': '******', 'password': '******', 'email': '*****@*****.**'} self.c_group = CategoryGroup() self.c_group.slug = '/' self.c_group.name = 'test_group' self.c_group.active = 1 self.c_group.desp = 'desp' self.c_group.owner = 'owner' self.c_group.save() self.course_cate = CourseCategory() self.course_cate.parent_id = 1 self.course_cate.name = 'test' self.course_cate.group = self.c_group self.course_cate.save() self.course = Course() self.course.course_id = 'xuetangX/testcs1/2014_T1' self.course.status = 1 self.course.serialized = 1 self.course.save() self.course.category.add(self.course_cate) self.course.save() self.km = KnowledgeMap() self.km.name = 'km_name' self.km.save() def test_v2_get_categories(self): test_url = reverse('api:v2_categories') # print test_url response = self.client.get(test_url) # print response content = json.loads(response.content) # print content self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_get_category_courses(self): # TODO mock Course serilizer ? test_url = reverse('api:v2_get_category_courses', kwargs={'cid': self.course_cate.id}) # print test_url response = self.client.get(test_url) # print response content = json.loads(response.content) # print content # self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_get_knowledgemaps(self): test_url = reverse('api:v2_get_knowledgemaps') # print test_url response = self.client.get(test_url) # print response self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_get_knowledgemap_tags(self): test_url = reverse('api:v2_get_knowledgemap_tags', kwargs={'kid':1}) # print test_url response = self.client.get(test_url) # print response self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_get_knowledgemap_couses(self): test_url = reverse('api:v2_get_knowledgemap_couses', kwargs={'kid':1}) # print test_url response = self.client.get(test_url) # print response self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_get_courses(self): test_url = reverse('api:v2_get_courses') # print test_url response = self.client.get(test_url) # print response self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_courses_hot(self): test_url = reverse('api:v2_courses_hot') # print test_url response = self.client.get(test_url) # print response self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_courses_recent(self): test_url = reverse('api:v2_courses_recent') # print test_url response = self.client.get(test_url) # print response self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_courses_enroll(self): test_url = reverse('api:v2_user_register') # print test_url self.client.post(test_url, self.user_info_with_email) self.client.login(username='******', password='******') test_url = reverse('api:v2_courses_enroll') # print test_url response = self.client.get(test_url) # print response self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_course_updates(self): test_url = reverse('api:v2_user_register') # print test_url self.client.post(test_url, self.user_info_with_email) self.client.login(username='******', password='******') test_url = reverse('api:v2_courses_updates') # print test_url response = self.client.get(test_url) # print response self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_course_follow(self): test_url = reverse('api:v2_user_register') # print test_url self.client.post(test_url, self.user_info_with_email) self.client.login(username='******', password='******') test_url = reverse('api:v2_courses_follow') # print test_url response = self.client.get(test_url) # print response self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_get_course_details(self): # TODO mock Course serilizer ? test_url = reverse('api:v2_get_course_details', kwargs={'course_id': self.course.course_id}) # print test_url response = self.client.get(test_url) # print response # self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_get_course_categories(self): test_url = reverse('api:v2_get_course_categories', kwargs={'course_id': self.course.course_id}) # print test_url response = self.client.get(test_url) # print response self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_get_course_staffs(self): test_url = reverse('api:v2_get_course_staffs', kwargs={'course_id': self.course.course_id}) # print test_url response = self.client.get(test_url) # print response self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_get_course_qas(self): test_url = reverse('api:v2_get_course_qas', kwargs={'course_id': self.course.course_id}) # print test_url response = self.client.get(test_url) # print response self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_enroll_course(self): test_url = reverse('api:v2_user_register') # print test_url self.client.post(test_url, self.user_info_with_email) self.client.login(username='******', password='******') # get request TODO get error test_url = reverse('api:v2_enroll_course', kwargs={'course_id': self.course.course_id}) # print test_url response = self.client.get(test_url) # print response # self.assertEqual(response.status_code, status.HTTP_200_OK) # TODO post request pass # TODO delete request pass def test_v2_fellow_course(self): test_url = reverse('api:v2_user_register') # print test_url self.client.post(test_url, self.user_info_with_email) self.client.login(username='******', password='******') # get request test_url = reverse('api:v2_fellow_course', kwargs={'course_id': self.course.course_id}) # print test_url response = self.client.get(test_url) # print response self.assertEqual(response.status_code, status.HTTP_200_OK) # TODO post request pass # TODO delete request pass def test_v2_get_course_updates(self): # get request test_url = reverse('api:v2_get_course_updates', kwargs={'course_id': self.course.course_id}) # print test_url response = self.client.get(test_url) # print response self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_get_course_enrollments(self): # get request test_url = reverse('api:v2_get_course_enrollments', kwargs={'course_id': self.course.course_id}) # print test_url response = self.client.get(test_url) # print response self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_get_course_comments(self): # get request test_url = reverse('api:v2_get_course_comments', kwargs={'course_id': self.course.course_id}) # print test_url response = self.client.get(test_url) # print response self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_get_course_freqdata(self): # get request test_url = reverse('api:v2_get_course_freqdata', kwargs={'course_id': self.course.course_id}) # print test_url response = self.client.get(test_url) # print response self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_get_course_chapters(self): # TODO test_url = reverse('api:v2_user_register') # print test_url self.client.post(test_url, self.user_info_with_email) self.client.login(username='******', password='******') # get request test_url = reverse('api:v2_get_course_chapters', kwargs={'course_id': self.course.course_id}) # print test_url response = self.client.get(test_url) # print response # self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_get_course_chapter_sequentials(self): # TODO pass def test_v2_get_course_sequential_verticals(self): # TODO pass def test_v2_course_sync(self): # TODO test_url = reverse('api:v2_user_register') # print test_url self.client.post(test_url, self.user_info_with_email) self.client.login(username='******', password='******') # get request test_url = reverse('api:v2_course_sync', kwargs={'course_id': self.course.course_id}) # print test_url response = self.client.get(test_url) # print response # self.assertEqual(response.status_code, status.HTTP_200_OK) # TODO post request pass # TODO delete request pass def test_v2_get_courses_status(self): test_url = reverse('api:v2_user_register') # print test_url self.client.post(test_url, self.user_info_with_email) self.client.login(username='******', password='******') # get request test_url = reverse('api:v2_get_courses_status') # print test_url response = self.client.get(test_url) print response self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_get_honors(self): test_url = reverse('api:v2_user_register') # print test_url self.client.post(test_url, self.user_info_with_email) self.client.login(username='******', password='******') test_url = reverse('api:v2_get_honors') # pritn test_url response = self.client.get(test_url) # print response self.assertEqual(response.status_code, status.HTTP_200_OK) def test_v2_get_video_quality(self): # TODO pass def test_v2_search(self): # TODO pass def test_v2_search_hot(self): # TODO pass