반응형
django: json 개체로 POST 기반 보기 테스트
저는 POST 요청을 통해 json 객체를 승인하는 여러 뷰를 가진 django 애플리케이션을 가지고 있습니다.json 객체는 중첩된 몇 개의 레이어가 있는 중간 복합 객체이므로 다음과 같이 json 라이브러리를 사용하여 raw_post_data를 구문 분석하고 있습니다.
def handle_ajax_call(request):
post_json = json.loads(request.raw_post_data)
... (do stuff with json query)
다음으로, 저는 이러한 관점에 대한 테스트를 작성하고 싶습니다.안타깝게도 json 객체를 고객에게 전달하는 방법을 알 수 없습니다.내 코드의 간단한 버전은 다음과 같습니다.
def test_ajax_call(self):
c = Client()
call_command('loadfixtures', 'temp-fixtures-1') #Custom command to populate the DB
J = {
some_info : {
attr1 : "AAAA",
attr2 : "BBBB",
list_attr : [ "x", "y", "z" ]
},
more_info : { ... },
info_list : [ 1, 22, 23, 24, 5, 26, 7 ]
}
J_string = json.dumps(J)
response = c.post('/ajax/call/', data=J_string )
테스트를 실행하면 다음 오류가 발생합니다.
AttributeError: 'str' object has no attribute 'items'
Client.post 메서드에서 JSON 개체를 전달하려면 어떻게 해야 합니까?
서류는 당신이 시험을 통과하면content_type
에 대한 매개 변수.client.post
그것은 치료할 것입니다.data
문서로서 가치를 부여하고 직접 게시합니다.사용해 보십시오.
response = c.post('/ajax/call/', content_type='application/json', data=J_string)
언급URL : https://stackoverflow.com/questions/11802299/django-testing-post-based-views-with-json-objects
반응형
'source' 카테고리의 다른 글
언제 @class method를 사용하고 when def method(self)를 사용해야 합니까? (0) | 2023.08.02 |
---|---|
Angular4 예외:'input'의 알려진 속성이 아니므로 'ngClass'에 바인딩할 수 없습니다. (0) | 2023.08.02 |
봄 3의 모든 컨트롤러 모델에 속성 추가 (0) | 2023.08.02 |
__init_.py에 정의된 클래스를 가져오는 방법 (0) | 2023.08.02 |
TAB에 데이터를 삽입하는 방법LE 유형 변수 (0) | 2023.08.02 |