def testDataExtractorMustReturnAListOfTuplesContainingTheDataToBeExported(self): db_deliveries_extractor = DbDeliveriesExtractor() db_deliveries_extractor.course = self.course result_list = db_deliveries_extractor.get_data() first_entry = (self.practice_uid, self.student_name_1, self.student_first_name_1, self.student_last_name_1, self.automatic_result_successfull, 8) second_entry = (self.practice_uid,self.student_name_2 , self.student_first_name_2, self.student_last_name_2, self.automatic_result_failed,None) self.assertEquals(result_list[0], first_entry) self.assertEquals(result_list[1], second_entry)
def testDataExtractorMustReturnAListOfTuplesContainingTheDataToBeExported( self): db_deliveries_extractor = DbDeliveriesExtractor() db_deliveries_extractor.course = self.course result_list = db_deliveries_extractor.get_data() first_entry = (self.practice_uid, self.student_name_1, self.student_first_name_1, self.student_last_name_1, self.automatic_result_successfull, 8) second_entry = (self.practice_uid, self.student_name_2, self.student_first_name_2, self.student_last_name_2, self.automatic_result_failed, None) self.assertEquals(result_list[0], first_entry) self.assertEquals(result_list[1], second_entry)
def testDataExtractorInvokeFilterMethodFromTheORM(self): objects = Mock() delivery_mock = Mock() filter_return_value = Mock() filter_return_value.status = 1 objects.filter.return_value = filter_return_value delivery_mock.get_automatic_correction.return_value = filter_return_value filter_return_value.order_by.return_value = [delivery_mock,] practices = Mock() practice_mock = Mock() practices.all.return_value = [practice_mock,] students = Mock() student_all_return_value = Mock() student_mock = Mock() student_all_return_value.order_by.return_value = [student_mock,] students.all.return_value = student_all_return_value db_deliveries_extractor = DbDeliveriesExtractor() db_deliveries_extractor.objects = objects db_deliveries_extractor.students = students db_deliveries_extractor.practices = practices db_deliveries_extractor.get_data() objects.filter.assert_called()
def download(request, idcourse): if(len(request.user.teacher_set.all()) > 0): # if an authenticated user "accidentally" access this section, he doesn't get an exception course = Course.objects.get(pk=idcourse) db_data_extractor = DbDeliveriesExtractor() db_data_extractor.course = course data = db_data_extractor.get_data() csv_tuple_printer = CsvTuplePrinter() output_file_name = get_output_file_name(course.name) csv_tuple_printer.open(output_file_name) for line in data: csv_tuple_printer.put(line) csv_tuple_printer.close() file = open(output_file_name) response = HttpResponse(file, content_type=TYPECSV) response['Content-Disposition'] = 'attachment; filename=%s' % output_file_name return response else: return HTTP_401_UNAUTHORIZED_RESPONSE
def testDataExtractorMustReturnAListContainingTheDataToBeExported(self): objects = Mock() delivery_mock = Mock() delivery_mock.practice.uid = "1" filter_return_value = Mock() filter_return_value.status = 1 objects.filter.return_value = filter_return_value delivery_mock.get_automatic_correction.return_value = filter_return_value filter_return_value.order_by.return_value = [delivery_mock,] practices = Mock() practice_mock = Mock() practice_mock.uid = "2" practices.all.return_value = [practice_mock,] students = Mock() student_all_return_value = Mock() student_mock = Mock() student_all_return_value.order_by.return_value = [student_mock,] students.all.return_value = student_all_return_value db_deliveries_extractor = DbDeliveriesExtractor() db_deliveries_extractor.objects = objects db_deliveries_extractor.students = students db_deliveries_extractor.practices = practices result_value = db_deliveries_extractor.get_data() first_expected = (delivery_mock.practice.uid, delivery_mock.student.uid, delivery_mock.student.user.first_name, delivery_mock.student.user.last_name, "aprobado", delivery_mock.get_correction.return_value.grade) second_expected = (practice_mock.uid, student_mock.uid, student_mock.user.first_name, student_mock.user.last_name, "pendiente", None) expected_value = [first_expected, second_expected,] self.assertEquals(result_value, expected_value)