2013-03-17 2 views
0

방금 ​​Ajax 유효성 검사 코드를 장고 양식으로 옮겼습니다. 테스트를 업데이트하는 데 도움이 필요합니다. 기본적으로 모든 스위트에서 사용되는 상수로 선언 된 테스트 데이터가 있습니다. 나는이 데이터를 반복적으로 테스트하고있다.Django 테스트 새 ID로 양식 만들기

설정의 일환으로 나는 일부 사용자를 작성하고 내가 필요로하는 사용자 로그인 :

def setUp(self): 
    self.client = Client() 
    create_user(username='staff', email='[email protected]', 
       password='staff', staff=True) 
    create_user(username='agent', email='[email protected]', 
       password='agent', staff=False) 
    ShiftType.objects.create(type_id='SI', description='Sales Inbox') 
    self.client.login(username='staff', password='staff') 
아래로 눈물이 데이터를 삭제

를 (또는에 사용) :

def tearDown(self): 
    # Clean up the DB 
    self.client.logout() 
    ShiftType.objects.all().delete() 
    User.objects.all().delete() 
    Event.objects.all().delete() 
    RecurrentEvent.objects.all().delete() 

이 있었다 잘 작동하지만 사용자가 지정한 양식 값 id가 매번 증가하므로 양식이 유효하지 않습니다. 예 :

ERROR: <ul class="errorlist"><li>employee_id<ul class="errorlist"><li>Select a valid choice. That choice is not one of the available choices.</li></ul></li></ul> 

양식을 인쇄하면 매번 ID가 증가하는 것을 볼 수 있습니다.

전 직원을 삭제하더라도 왜 이런 일이 발생합니까?

답변

0

매번 데이터를 만들고 삭제하는 대신 텍스트 고정물을 사용합니다. 이것은 장고에서 꽤 쉽습니다. 당신의 tests.py 그것은 다음과 같이 보일 것이다

class BlogTest(TestCase): 
    fixtures = ['core/fixtures/test.json'] 

당신이 할 때,에 고정로드, 당신에게 테스트 데이터베이스를 구축하여 테스트를 실행하고 테스트 한 후 데이터베이스를 날려이 장고 끝난. 다른 데이터베이스 엔진을 사용하기를 원한다면 (테스트가 sqlite를 사용하기 때문에 sqlite를 사용하기 때문에) settings.py에 다음과 같은 내용을 던질 수 있습니다.

이렇게하면 ID가 동일하게됩니다 매번 당신의 문제를 해결할 시간.