2017-02-09 5 views
0

Я хотел бы протестировать добавление пользовательской формы файла документа в мое приложение на панели администратора. К сожалению, документация django довольно неясна в этом отношении.Проверка формы администратора Django

Это моя модель:

class Document(models.Model): 
    pub_date = models.DateTimeField('date published') 
    title = models.CharField(max_length=255) 
    description = models.TextField() 
    pdf_doc = models.FileField(upload_to=repo_dir, max_length=255) 

Это мой тест:

from django.test import TestCase 
from django.test import Client 
from django.utils import timezone 
from datetime import datetime, timedelta 

class DocumentAdminFormTest(TestCase): 

    def test_add_document_form(self): 
     client = Client() 
     change_url = 'admin/docrepo/document/add/' 
     today = datetime.today() 
     filepath = u'/filepath/to/some/pdf/' 
     data = {'title': 'TEST TITLE', 
       'description': 'TEST DESCRIPTION', 
       'pub_date0': '2000-01-01', 
       'pub_date1': '00:00:00', 
       'pdf_doc': filepath, 
       } 
     response = client.post(change_url, data) 
     print('REASON PHRASE: ' + response.reason_phrase) 
     self.assertIs(response.status_code, 200) 

Я хотел бы получить ответ 200 при отправке формы с показанными данными. По какой-то причине response.status_code дает 404, а response.reason_phrase дает «Not Found». Возможно ли, что проблема лежит в каталоге?

+1

Обычно URL-адрес начинается с косой черты. –

+0

Хорошо, это подтолкнуло меня немного дальше ... теперь response.status_code возвращает 304, а response.reason_phrase дает «Найдено». Возможно ли это из-за отсутствия входа в систему? – asdfgh

ответ

0

Вы должны log the client in:

c = Client() 
c.login(username='your_username', password='your_password') 
response = c.post(change_url, data) 

Самый правильный способ определить change_url использует reverse(). Вы можете указать browse the docs, чтобы найти правильный способ сделать это. Например:

change_url = reverse('admin:docrepo_document_add') 
Смежные вопросы