2017-10-09 1 views
1

내가 장고 뷰에 대한 단위 테스트를 쓰고 있어요 및 내 단위 테스트에서이 있습니다Django 테스트 클라이언트에서 POST 매개 변수의 순서를 유지하는 방법은 무엇입니까?

data_from_paypal_other_id = {'client_id': '1', 'receiver_email': '[email protected]', 'amount': '1.5'} 
self.client.post(reverse('paypal_ipn_listener'), data=data_from_paypal_other_id) 

문제은 페이팔이 특정 순서로 매개 변수로 POST 요청을 보내도록 저를 필요로합니다. Don't ask me why, see this. receiver_emailclient_id 전에 뛰어 것을

--BoUnDaRyStRiNg 
Content-Disposition: form-data; name="receiver_email" 

[email protected] 
--BoUnDaRyStRiNg 
Content-Disposition: form-data; name="amount" 

1.5 
--BoUnDaRyStRiNg 
Content-Disposition: form-data; name="client_id" 

1 
--BoUnDaRyStRiNg-- 

참고 :

내가 엉망 순서로 매개 변수를 볼 수있는 장고 테스트 클라이언트

.

제 질문은 어떻게 장고 테스트 클라이언트가 인수의 순서를 유지하도록합니까?

+1

시도가 사용하는 OderdedDict https://docs.python.org/2/library/collections.html#collections.OrderedDict – neverwalkaloner

답변

1

dict 대신 collections.OrderedDict을 사용하면 트릭을 수행해야합니다. 당신이 순서 아닌 원래의 사전, 예컨대 그것을 확인 초기화합니다

from collections import OrderedDict 

data_from_paypal_other_id = OrderedDict([ 
    ('client_id', '1'), ('receiver_email', '[email protected]'), 
    ('amount', '1.5')]) 
관련 문제