network_inventory/src/devices/tests/test_device_form_views.py

206 lines
6.6 KiB
Python

from datetime import datetime
from django.test import Client
from mixer.backend.django import mixer
import pytest
from core.tests import helper
pytestmark = pytest.mark.django_db
def test_device_create_view(create_admin_user):
fixture = create_admin_user()
client = Client()
client.login(username="pharma-admin", password="password")
data = {"name": "Test Device", "customer": fixture["customer"].id}
url = "/customer/{}/create/device/".format(fixture["customer"].id)
response = client.post(url, data)
assert response.status_code == 302
def test_device_delete_view(create_admin_user):
create_admin_user()
client = Client()
client.login(username="pharma-admin", password="password")
device = mixer.blend("devices.Device")
response = client.post("/delete/device/{}/".format(device.pk))
assert response.status_code == 302
def test_load_device_update_view(create_admin_user):
create_admin_user()
client = Client()
client.login(username="pharma-admin", password="password")
device = mixer.blend("devices.Device", customer=mixer.SELECT)
response = client.get("/update/device/{}/".format(device.pk))
assert response.status_code == 200 and helper.in_content(response, device.name)
def test_device_update_view(create_admin_user):
create_admin_user()
client = Client()
client.login(username="pharma-admin", password="password")
device = mixer.blend("devices.Device", customer=mixer.SELECT)
data = {
"name": "Foo",
"description": "",
"serialnumber": "",
"category": "",
"owner": "",
"customer": device.customer.id,
"manufacturer": "",
"model": "",
"location": "",
"user": "",
"installation_date": "",
"save_device": "",
}
response = client.post("/update/device/{}/".format(device.pk), data)
assert response.status_code == 302
device.refresh_from_db()
assert device.name == data["name"]
def test_device_update_view_wrong_name(create_admin_user):
create_admin_user()
client = Client()
client.login(username="pharma-admin", password="password")
device1 = mixer.blend("devices.Device", customer=mixer.SELECT)
device2 = mixer.blend("devices.Device", customer=mixer.SELECT)
data = {
"name": device2.name,
"description": "",
"serialnumber": "",
"category": "",
"owner": "",
"customer": device1.customer.id,
"manufacturer": "",
"model": "",
"location": "",
"user": "",
"installation_date": "",
"save_device": "",
}
response = client.post("/update/device/{}/".format(device1.pk), data)
assert response.status_code == 200 and helper.in_content(
response, "Device with this Name and Customer already exists."
)
def test_warranty_create_view(create_admin_user):
create_admin_user()
client = Client()
client.login(username="pharma-admin", password="password")
device = mixer.blend("devices.Device", customer=mixer.SELECT)
data = {
"customer": device.customer.id,
"device": device.id,
"valid_from": "2020-05-24",
"valid_until": "2020-05-25",
"warranty_type": "",
}
url = "/device/{}/add/warranty/".format(device.id)
response = client.post(url, data)
assert response.status_code == 302
def test_warranty_update_view(create_admin_user):
create_admin_user()
client = Client()
client.login(username="pharma-admin", password="password")
device = mixer.blend("devices.Device", customer=mixer.SELECT)
warranty = mixer.blend(
"devices.Warranty",
customer=device.customer,
device=device,
valid_from="2019-05-24",
valid_until="2020-05-25",
)
data = {
"customer": device.customer.id,
"device": device.id,
"valid_from": "2020-05-24",
"valid_until": "2020-05-25",
"warranty_type": "",
}
response = client.post("/update/warranty/{}/".format(warranty.pk), data)
date_from = datetime.strptime(data["valid_from"], "%Y-%m-%d").date()
assert response.status_code == 302
warranty.refresh_from_db()
assert warranty.valid_from == date_from
def test_warranty_delete_view(create_admin_user):
create_admin_user()
client = Client()
client.login(username="pharma-admin", password="password")
device = mixer.blend("devices.Device", customer=mixer.SELECT)
warranty = mixer.blend(
"devices.Warranty",
customer=device.customer,
device=device,
valid_from="2019-05-24",
valid_until="2020-05-25",
)
url = "/delete/warranty/{}/".format(warranty.id)
response = client.post(url)
assert response.status_code == 302
def test_device_in_net_create_view(create_admin_user):
create_admin_user()
client = Client()
client.login(username="pharma-admin", password="password")
device = mixer.blend("devices.Device", customer=mixer.SELECT)
net = mixer.blend("nets.Net", customer=device.customer)
data = {
"device": device.id,
"net": net.id,
"ip": "192.168.1.20",
"nic": "",
"mac_address": "",
"ip_status": "1",
}
url = "/device/{}/add/device-in-net/".format(device.id)
response = client.post(url, data)
assert response.status_code == 302
def test_device_in_net_update_view(create_admin_user):
create_admin_user()
client = Client()
client.login(username="pharma-admin", password="password")
device = mixer.blend("devices.Device", customer=mixer.SELECT)
net = mixer.blend("nets.Net", customer=device.customer)
device_in_net = mixer.blend(
"devices.DeviceInNet", customer=device.customer, device=device, net=net
)
data = {
"device": device.id,
"net": net.id,
"ip": "192.168.1.20",
"nic": "",
"mac_address": "",
"ip_status": "1",
}
response = client.post("/update/device-in-net/{}/".format(device_in_net.pk), data)
assert response.status_code == 302
device_in_net.refresh_from_db()
assert device_in_net.ip == data["ip"]
def test_device_in_net_delete_view(create_admin_user):
create_admin_user()
client = Client()
client.login(username="pharma-admin", password="password")
device = mixer.blend("devices.Device", customer=mixer.SELECT)
net = mixer.blend("nets.Net", customer=device.customer)
device_in_net = mixer.blend(
"devices.DeviceInNet", customer=device.customer, device=device, net=net
)
url = "/delete/device-in-net/{}/".format(device_in_net.id)
response = client.post(url)
assert response.status_code == 302