I am writting some tests in a Django project. For example, I want to test an index view in one app fo my Django project. But I am not sure test code below is correct, event if test passed.
User need to be authentified to access this index view.
So, in SetUp, I first create test user and logged in.
And finally, I test I can get index view by testing status_code return.
But if I omit follow=True, it return 302 and test failed. Is my test code correct?
class IndexPageTestCase(TestCase):
def setUp(self):
self.client = Client()
self.user = User.objects.create_superuser(username='test', password='test', email='test@test.fr')
self.client.login(username='test', password='test')
def test_index_page(self):
response = self.client.get(reverse('ecrf:index'), follow=True)
self.assertEqual(response.status_code, 200)
Django project architecture
- core
- urls.py
- ecrf
- urls.py
- views.py
core/urls.py
urlpatterns = [
path('ecrf/', include('ecrf.urls')),
]
ecrf/urls.py
urlpatterns = [
path("", views.index, name="index"),
]
ecrf/views.py
@login_required
def index(request):
...
return render(request, "ecrf/index.html", context)