Beispiel #1
0
def subjects_list(request):
    if request.method == 'GET':
        subjects = Subject.objects.all()
        serializer = SubjectSerializer(subjects, many=True)
        return JsonResponse(serializer.data, safe=False)

    elif request.method == 'POST':
        query_string = request.POST.get('query', '')
        subject = get_subject_by_query_string(query_string=query_string)

        if subject and subject.requested_recently():
            subject.request_time = timezone.now()
            subject.save(update_fields=['request_time'])
            serializer = SubjectSerializer(data=subject.to_dict())
            if serializer.is_valid():
                return JsonResponse(serializer.data, status=201)
        else:
            data = fetch_data(
                url='https://rmsp.nalog.ru/search-proc.json',
                query_string=query_string,
            )
            if data:
                subject = Subject(**data)
                subject.save()
                subject.query_set.create(query_string=query_string)
                serializer = SubjectSerializer(data=subject.to_dict())
                if serializer.is_valid():
                    return JsonResponse(serializer.data, status=201)

        return JsonResponse({'error': 'Query string is invalid'}, status=400)
Beispiel #2
0
 def test_get_subjects_list(self):
     subject_list_empty = models_conf_classes.SubjectConf.get_objects_dict_list_or_404(Subject)[0].json
     subject = Subject('Test')
     db.session.add(subject)
     db.session.commit()
     subject_list = models_conf_classes.SubjectConf.get_objects_dict_list_or_404(Subject)[0].json
     self.assertTrue(subject.to_dict() in subject_list['items'])
     self.assertEqual(subject_list_empty['msg'], 'objects is not found')
     self.assertEqual(subject_list_empty.get('items', False), False)
Beispiel #3
0
 def test_to_dict_method(self):
     teacher = User(email='*****@*****.**')
     subject = Subject("Test")
     teacher.is_teacher = True
     db.session.add(teacher)
     db.session.add(subject)
     db.session.commit()
     db.session.commit()
     tch_dict = teacher.to_dict()
     sub_dict = subject.to_dict()
     self.assertIsInstance(tch_dict, dict)
     self.assertIsInstance(sub_dict, dict)
Beispiel #4
0
 def test_get_subject_by_id_func(self):
     subject = Subject('Test')
     db.session.add(subject)
     db.session.commit()
     subject_data = models_conf_classes.SubjectConf.get_obj_dict_or_404(Subject, subject.id)
     self.assertEqual(subject.to_dict(), subject_data[0].json['item'])