Найти - Пользователи
Полная версия: Тест для объекта в БД
Начало » Django » Тест для объекта в БД
1
megoloman
Здравствуйте! Помогите пожалуйста со следующей проблемой.

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

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 записи. Как это обычно делается?
FishHook
Вообще, при запуске тестов создается временная тестовая база данных (разумеется, пустая).
После завершения теста эта база удаляется. Собственно, тестом вы не можете проверить состояние вашей бд.
Это и логично, чтобы тесты не испортили данные (на то они и тесты).
Можно, конечно, специально используя using в запросе обратиться и к “боевой” базе, но так не делают.
Обычно тестируют на каких-то специально приготовленных данных и читают их из фикстур.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB