Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 11, 2016 17:14:55

megoloman
Зарегистрирован: 2015-10-26
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

Тест для объекта в БД

Здравствуйте! Помогите пожалуйста со следующей проблемой.

В таблице БД есть одна запись. Данные с этой записи я отображаю в шаблоне. Я написал тест для корректного отображения шаблона и тест для моей модели:

from django.test import TestCase
    from django.test.client import Client
    from django.core.urlresolvers import reverse
    from models import My_Info
    
    
    class My_InfoModelTests(TestCase):
    
        def test_str(self):
            """ Info model tests """
            info = My_Info(name='Oleg', last_name='Petrov')
            self.assertEqual(str(info), 'Oleg Petrov')
    
        def test_correct_template_render(self):
            """ Test that corrects template rendered """
            client = Client()
            response = client.get(reverse('contact_info.views.my_info_view'))
            self.assertEqual(response.status_code, 200)
            self.assertTemplateUsed(response, 'contact_info/my_info.html')
            self.assertEqual(response['Content-Type'], 'text/html; charset=utf-8')

Есть необходимость написать тест на случай, если в базе больше/меньше 1 записи. Как это обычно делается?

Офлайн

#2 Фев. 11, 2016 17:27:51

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Тест для объекта в БД

Вообще, при запуске тестов создается временная тестовая база данных (разумеется, пустая).
После завершения теста эта база удаляется. Собственно, тестом вы не можете проверить состояние вашей бд.
Это и логично, чтобы тесты не испортили данные (на то они и тесты).
Можно, конечно, специально используя using в запросе обратиться и к “боевой” базе, но так не делают.
Обычно тестируют на каких-то специально приготовленных данных и читают их из фикстур.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version