2013-04-29 3 views
0

Django-TastyPie를 사용하여 API를 개발 중입니다.비동기 요청으로 django API를 테스트하는 방법

API는 무엇입니까?

그렇다면 서버에 둘 이상의 요청이 있는지 확인합니다. 예이면 두 요청의 데이터를 서로 바꿔서 7 초 후에 json 응답을 반환합니다.

이 API를 테스트하기 위해 서버에 여러 비동기 요청을 보내면됩니다. 이 기능을 테스트하기 위해 Tasty-Pie와 함께 Django-Unit Test를 사용하고 있습니다.

문제

해결을 시도 비동기 요청을 지원하지 않도록

장고을 develpment 서버는 단일 스레드입니다 :

:

내가 멀티를 사용하여이 문제를 해결하려고 노력을

class MatchResourceTest(ResourceTestCase): 

def setUp(self): 
    super(MatchResourceTest, self).setUp() 

    self.user="" 
    self.user_list = [] 
    self.thread_list = [] 

    # Create and get user 
    self.assertHttpCreated(self.api_client.post('/api/v2/user/', format='json', data={'username': '123456','device': 'abc'})) 
    self.user_list.append(User.objects.get(username='123456')) 

    # Create and get other_user 
    self.assertHttpCreated(self.api_client.post('/api/v2/user/', format='json', data={'username': '456789','device': 'xyz'})) 
    self.user_list.append(User.objects.get(username='456789')) 

def get_credentials(self): 
    return self.create_apikey(username=self.user.username, api_key=self.user.api_key.key) 

def get_url(self): 
    resp = urllib2.urlopen(self.list_url).read() 
    self.assertHttpOK(resp) 

def test_get_list_json(self): 

    for user in self.user_list: 
     self.user = user 
     self.list_url = 'http://127.0.0.1:8000/api/v2/match/?name=hello' 

     t = multiprocessing.Process(target=self.get_url) 
     t.start() 
     self.thread_list.append(t) 

    for t in self.thread_list: 
     t.join() 
     print ContactCardShare.objects.all() 

제발 sugg 동부 표준시 나 모든 솔루션은 asychronous 요청을

또는

어떤 APP, 도서관 또는 내가 아는 한 장고 개발 서버가 asychronously

답변

0

지금까지 여러 요청을 처리 할 수있는이, django's development server is multi-threaded을 보내이 API를 테스트합니다.

이 테스트가 올바르게 형식화되어 있는지 확실하지 않습니다. 테스트 setUp은 테스트 자체를 포함해서는 안되며 항목을 작성하여 데이터를 완벽하게 삽입해야합니다. post에는 자체 테스트가 있어야합니다.

예제 테스트 케이스는 tastypie docs을 참조하십시오.

관련 문제