convert the tests to use the test client

using the test client ensures that the whole stack gets tested and not just the
view.
This commit is contained in:
Andreas Zweili 2020-05-24 22:20:18 +02:00
parent b3fde54abe
commit 8a94679872
1 changed files with 18 additions and 23 deletions

View File

@ -1,36 +1,36 @@
from django.test import RequestFactory from django.test import Client
from mixer.backend.django import mixer from mixer.backend.django import mixer
import pytest import pytest
from devices import views
pytestmark = pytest.mark.django_db pytestmark = pytest.mark.django_db
def test_device_create_view(create_admin_user): def test_device_create_view(create_admin_user):
fixture = create_admin_user() fixture = create_admin_user()
client = Client()
client.login(username="pharma-admin", password="password")
data = {'name': 'Test Device', data = {'name': 'Test Device',
'customer': fixture['customer'].id} 'customer': fixture['customer'].id}
request = RequestFactory().post('/', data=data) url = '/customer/{}/create/device/'.format(fixture['customer'].id)
request.user = fixture['admin'] response = client.post(url, data)
response = views.DeviceCreateFromCustomerView.as_view()(
request, pk=fixture['customer'].id)
assert response.status_code == 302 assert response.status_code == 302
def test_device_delete_view(create_admin_user): def test_device_delete_view(create_admin_user):
fixture = create_admin_user() create_admin_user()
client = Client()
client.login(username="pharma-admin", password="password")
device = mixer.blend('devices.Device') device = mixer.blend('devices.Device')
request = RequestFactory().post('/') response = client.post('/delete/device/{}/'.format(device.pk))
request.user = fixture['admin']
response = views.DeviceDeleteView.as_view()(request, pk=device.pk)
assert response.status_code == 302 assert response.status_code == 302
def test_device_update_view(create_admin_user): def test_device_update_view(create_admin_user):
fixture = create_admin_user() create_admin_user()
client = Client()
client.login(username="pharma-admin", password="password")
device = mixer.blend('devices.Device', customer=mixer.SELECT) device = mixer.blend('devices.Device', customer=mixer.SELECT)
data = {'name': 'Foo', data = {'name': 'Foo',
'description': '', 'description': '',
@ -43,16 +43,16 @@ def test_device_update_view(create_admin_user):
'location': '', 'location': '',
'user': '', 'user': '',
'installation_date': ''} 'installation_date': ''}
request = RequestFactory().post('/', data=data) response = client.post('/update/device/{}/'.format(device.pk), data)
request.user = fixture['admin']
response = views.DeviceUpdateView.as_view()(request, pk=device.pk)
assert response.status_code == 302 assert response.status_code == 302
device.refresh_from_db() device.refresh_from_db()
assert device.name == data['name'] assert device.name == data['name']
def test_warranty_create_view(create_admin_user): def test_warranty_create_view(create_admin_user):
fixture = create_admin_user() create_admin_user()
client = Client()
client.login(username="pharma-admin", password="password")
device = mixer.blend('devices.Device', customer=mixer.SELECT) device = mixer.blend('devices.Device', customer=mixer.SELECT)
data = { data = {
'customer': device.customer.id, 'customer': device.customer.id,
@ -61,11 +61,6 @@ def test_warranty_create_view(create_admin_user):
'valid_until': '2020-05-25', 'valid_until': '2020-05-25',
'warranty_type': '' 'warranty_type': ''
} }
request = RequestFactory().post('/', data=data) url = '/device/{}/add/warranty/'.format(device.id)
request.user = fixture['admin'] response = client.post(url, data)
response = views.WarrantyCreateView.as_view()(
request,
pk=fixture['customer'].id)
assert response.status_code == 302 assert response.status_code == 302