2019-08-04 20:50:10 +02:00
|
|
|
import pytest
|
2019-08-11 20:41:17 +02:00
|
|
|
from mixer.backend.django import mixer
|
2019-08-04 20:50:10 +02:00
|
|
|
|
|
|
|
from django.urls import resolve
|
|
|
|
from django.test import Client
|
|
|
|
from django.contrib.auth import get_user_model
|
|
|
|
from django.contrib.auth.models import Group
|
|
|
|
|
2019-08-11 20:56:39 +02:00
|
|
|
from inventory.models import (Backup, Device, Customer, Computer, Net,
|
2019-08-11 20:57:17 +02:00
|
|
|
Ram, ComputerRamRelation,
|
2019-08-11 20:57:37 +02:00
|
|
|
RaidType, RaidInComputer, DisksInRaid, Disk,
|
2019-09-01 12:07:56 +02:00
|
|
|
Cpu, ComputerCpuRelation, DeviceInNet)
|
2019-08-04 20:50:10 +02:00
|
|
|
|
2019-08-11 21:35:21 +02:00
|
|
|
from helper import in_content, not_in_content
|
|
|
|
|
2019-08-11 20:40:33 +02:00
|
|
|
pytestmark=pytest.mark.django_db
|
|
|
|
|
2019-08-04 20:50:10 +02:00
|
|
|
|
|
|
|
def test_customer_list_view_not_logged_in():
|
2019-08-15 18:40:29 +02:00
|
|
|
response = Client().get('/')
|
|
|
|
assert response.status_code == 302 and 'login' in response.url
|
2019-08-04 20:50:10 +02:00
|
|
|
|
|
|
|
|
2019-08-28 22:29:56 +02:00
|
|
|
def test_customer_list_view_no_customer():
|
2019-08-07 22:41:06 +02:00
|
|
|
User = get_user_model()
|
|
|
|
admin = User.objects.create_user("novartis-admin", "admin@novartis.com",
|
|
|
|
"password", is_staff=True)
|
2019-08-06 22:22:24 +02:00
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
|
|
|
response = client.get('/')
|
2019-08-28 22:29:56 +02:00
|
|
|
assert response.status_code == 200
|
2019-08-06 22:22:24 +02:00
|
|
|
|
|
|
|
|
2019-08-04 20:50:10 +02:00
|
|
|
def test_customer_list_view(create_admin_user):
|
2019-08-28 23:09:06 +02:00
|
|
|
fixture = create_admin_user()
|
2019-08-30 23:15:11 +02:00
|
|
|
customer = fixture['customer']
|
2019-08-04 20:50:10 +02:00
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
|
|
|
response = client.get('/')
|
2019-08-28 23:09:06 +02:00
|
|
|
assert (response.status_code == 200
|
2019-08-30 23:15:11 +02:00
|
|
|
and in_content(response, customer.name))
|
2019-08-04 20:50:10 +02:00
|
|
|
|
|
|
|
|
2019-08-04 22:17:02 +02:00
|
|
|
def test_customer_detail_view_not_logged_in():
|
2019-08-15 18:40:29 +02:00
|
|
|
response = Client().get('/customer/1/')
|
|
|
|
assert response.status_code == 302 and 'login' in response.url
|
2019-08-04 20:50:10 +02:00
|
|
|
|
|
|
|
|
2019-08-04 22:17:02 +02:00
|
|
|
def test_customer_detail_view_not_found(create_admin_user):
|
2019-08-06 21:03:58 +02:00
|
|
|
create_admin_user()
|
2019-08-04 22:17:02 +02:00
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
2019-08-30 23:14:47 +02:00
|
|
|
response = client.get('/customer/230/')
|
2019-08-04 22:17:02 +02:00
|
|
|
assert response.status_code == 404
|
2019-08-04 20:50:10 +02:00
|
|
|
|
|
|
|
|
2019-08-04 22:17:02 +02:00
|
|
|
def test_customer_detail_view(create_admin_user):
|
2019-08-28 23:09:06 +02:00
|
|
|
fixture = create_admin_user()
|
2019-08-30 23:14:47 +02:00
|
|
|
customer = fixture['customer']
|
2019-08-04 22:17:02 +02:00
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
2019-08-30 23:14:47 +02:00
|
|
|
response = client.get('/customer/' + str(customer.id) + '/')
|
2019-08-28 23:09:06 +02:00
|
|
|
assert (response.status_code == 200
|
2019-08-30 23:15:11 +02:00
|
|
|
and in_content(response, customer.name))
|
2019-08-04 22:17:02 +02:00
|
|
|
|
|
|
|
|
2019-08-07 22:37:35 +02:00
|
|
|
def test_customer_detail_view_no_permissions():
|
|
|
|
User = get_user_model()
|
|
|
|
admin = User.objects.create_user("novartis-admin", "admin@novartis.com",
|
|
|
|
"password", is_staff=True)
|
|
|
|
client = Client()
|
2019-08-11 20:42:13 +02:00
|
|
|
customer = mixer.blend('inventory.Customer')
|
2019-08-07 22:37:35 +02:00
|
|
|
client.login(username="novartis-admin", password="password")
|
2019-08-30 23:14:47 +02:00
|
|
|
response = client.get('/customer/' + str(customer.id) + '/')
|
2019-08-15 18:40:29 +02:00
|
|
|
assert response.status_code == 302 and 'login' in response.url
|
2019-08-07 22:37:35 +02:00
|
|
|
|
|
|
|
|
2019-08-04 22:17:02 +02:00
|
|
|
def test_customer_computer_table_not_logged_in():
|
2019-08-15 18:40:29 +02:00
|
|
|
response = Client().get('/customer/1/computers/')
|
|
|
|
assert response.status_code == 302 and 'login' in response.url
|
2019-08-04 22:17:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
def test_customer_computer_table(create_admin_user):
|
2019-08-30 23:14:47 +02:00
|
|
|
fixture = create_admin_user()
|
|
|
|
customer = fixture['customer']
|
2019-08-04 22:17:02 +02:00
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
2019-08-11 20:54:18 +02:00
|
|
|
computer = mixer.blend('inventory.Computer', customer=mixer.SELECT)
|
2019-08-30 23:14:47 +02:00
|
|
|
response = client.get('/customer/' + str(customer.id) + '/computers/')
|
2019-08-11 21:35:21 +02:00
|
|
|
assert response.status_code == 200 and in_content(response, computer.name)
|
2019-08-06 22:23:39 +02:00
|
|
|
|
|
|
|
|
|
|
|
def test_customer_computer_table_no_computer(create_admin_user):
|
2019-08-30 23:14:47 +02:00
|
|
|
fixture = create_admin_user()
|
|
|
|
customer = fixture['customer']
|
2019-08-06 22:23:39 +02:00
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
2019-08-30 23:14:47 +02:00
|
|
|
response = client.get('/customer/' + str(customer.id) + '/computers/')
|
2019-08-11 21:35:21 +02:00
|
|
|
assert response.status_code == 200 and not_in_content(response, "Novartis PC")
|
2019-08-04 20:50:10 +02:00
|
|
|
|
|
|
|
|
2019-08-04 22:17:02 +02:00
|
|
|
def test_customer_device_table_not_logged_in():
|
2019-08-15 18:40:29 +02:00
|
|
|
response = Client().get('/customer/1/devices/')
|
|
|
|
assert response.status_code == 302 and 'login' in response.url
|
2019-08-04 20:50:10 +02:00
|
|
|
|
|
|
|
|
|
|
|
def test_computer_detail_view_not_logged_in():
|
2019-08-15 18:40:29 +02:00
|
|
|
response = Client().get('/computer/1/')
|
|
|
|
assert response.status_code == 302 and 'login' in response.url
|
2019-08-04 20:50:10 +02:00
|
|
|
|
|
|
|
|
|
|
|
def test_computer_detail_view(create_admin_user):
|
2019-08-11 20:55:01 +02:00
|
|
|
create_admin_user()
|
|
|
|
computer = mixer.blend('inventory.Computer', customer=mixer.SELECT)
|
2019-08-04 20:50:10 +02:00
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
2019-08-30 23:14:47 +02:00
|
|
|
response = client.get('/computer/' + str(computer.id) + '/')
|
2019-08-11 21:35:21 +02:00
|
|
|
assert response.status_code == 200 and in_content(response, computer.name)
|
2019-08-04 20:50:10 +02:00
|
|
|
|
|
|
|
|
2019-08-06 21:41:55 +02:00
|
|
|
def test_computer_detail_view_not_found(create_admin_user):
|
|
|
|
create_admin_user()
|
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
|
|
|
response = client.get('/computer/100/')
|
|
|
|
assert response.status_code == 404
|
|
|
|
|
2019-08-11 20:56:39 +02:00
|
|
|
|
2019-08-06 22:22:06 +02:00
|
|
|
def test_computer_detail_view_ram_relation(create_admin_user):
|
2019-08-11 20:56:39 +02:00
|
|
|
create_admin_user()
|
|
|
|
computer = mixer.blend('inventory.Computer', customer=mixer.SELECT)
|
|
|
|
ram_type = mixer.blend('inventory.RamType')
|
|
|
|
ram = mixer.blend('inventory.Ram', ram_type=ram_type)
|
|
|
|
mixer.blend('inventory.ComputerRamRelation', computer=computer, ram=ram)
|
2019-08-06 22:22:06 +02:00
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
2019-08-30 23:14:47 +02:00
|
|
|
response = client.get('/computer/' + str(computer.id) + '/')
|
2019-08-11 21:35:21 +02:00
|
|
|
assert response.status_code == 200 and in_content(response, "RAM Modules:")
|
2019-08-06 22:22:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
def test_computer_detail_view_raid_relation(create_admin_user):
|
2019-08-11 20:57:17 +02:00
|
|
|
create_admin_user()
|
|
|
|
computer = mixer.blend('inventory.Computer', customer=mixer.SELECT)
|
|
|
|
raid = mixer.blend('inventory.RaidType')
|
|
|
|
disk = mixer.blend('inventory.Disk')
|
|
|
|
disks = mixer.blend('inventory.DisksInRaid', raid=raid, disk=disk)
|
|
|
|
mixer.blend('inventory.RaidInComputer', computer=computer, raid=disks)
|
2019-08-06 22:22:06 +02:00
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
2019-08-30 23:14:47 +02:00
|
|
|
response = client.get('/computer/' + str(computer.id) + '/')
|
2019-08-11 21:35:21 +02:00
|
|
|
assert response.status_code == 200 and in_content(response, "RAID")
|
2019-08-06 22:22:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
def test_computer_detail_view_cpu_relation(create_admin_user):
|
2019-08-11 20:57:37 +02:00
|
|
|
create_admin_user()
|
|
|
|
computer = mixer.blend('inventory.Computer', customer=mixer.SELECT)
|
|
|
|
cpu = mixer.blend('inventory.Cpu', cpu_typ=mixer.SELECT)
|
|
|
|
mixer.blend('inventory.ComputerCpuRelation', cpu=cpu, computer=computer)
|
2019-08-06 22:22:06 +02:00
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
2019-08-30 23:14:47 +02:00
|
|
|
response = client.get('/computer/' + str(computer.id) + '/')
|
2019-08-11 21:35:21 +02:00
|
|
|
assert response.status_code == 200 and in_content(response, cpu.name)
|
2019-08-06 22:22:06 +02:00
|
|
|
|
2019-08-06 21:41:55 +02:00
|
|
|
|
2019-08-06 21:48:29 +02:00
|
|
|
def test_device_detail_view_not_logged_in():
|
2019-08-15 18:40:29 +02:00
|
|
|
response = Client().get('/device/1/')
|
|
|
|
assert response.status_code == 302 and 'login' in response.url
|
2019-08-04 20:50:10 +02:00
|
|
|
|
|
|
|
|
2019-08-06 21:48:29 +02:00
|
|
|
def test_device_detail_view(create_admin_user):
|
2019-08-11 21:36:29 +02:00
|
|
|
create_admin_user()
|
|
|
|
device = mixer.blend('inventory.Device', customer=mixer.SELECT)
|
2019-08-06 21:48:29 +02:00
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
2019-08-30 23:14:47 +02:00
|
|
|
response = client.get('/device/' + str(device.id) + '/')
|
2019-08-11 21:35:21 +02:00
|
|
|
assert response.status_code == 200 and in_content(response, device.name)
|
2019-08-06 21:48:29 +02:00
|
|
|
|
|
|
|
|
|
|
|
def test_device_detail_view_not_found(create_admin_user):
|
|
|
|
create_admin_user()
|
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
|
|
|
response = client.get('/device/100/')
|
|
|
|
assert response.status_code == 404
|
2019-08-04 20:50:10 +02:00
|
|
|
|
|
|
|
|
2019-08-06 22:03:46 +02:00
|
|
|
def test_net_detail_view_not_logged_in():
|
2019-08-15 18:40:29 +02:00
|
|
|
response = Client().get('/net/1/')
|
|
|
|
assert response.status_code == 302 and 'login' in response.url
|
2019-08-06 22:03:46 +02:00
|
|
|
|
|
|
|
|
|
|
|
def test_net_detail_view(create_admin_user):
|
2019-08-11 21:44:13 +02:00
|
|
|
create_admin_user()
|
|
|
|
net = mixer.blend('inventory.Net')
|
2019-09-01 12:07:56 +02:00
|
|
|
device = mixer.blend('inventory.Computer')
|
|
|
|
device_in_net = DeviceInNet(device=device, net=net, ip='10.7.89.101')
|
2019-08-06 22:03:46 +02:00
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
2019-08-30 23:14:47 +02:00
|
|
|
response = client.get('/net/' + str(net.id) + '/')
|
2019-09-01 12:07:56 +02:00
|
|
|
assert (response.status_code == 200
|
|
|
|
and in_content(response, net.name)
|
|
|
|
and in_content(response, device_in_net.ip))
|
2019-08-06 22:03:46 +02:00
|
|
|
|
|
|
|
|
|
|
|
def test_net_detail_view_not_found(create_admin_user):
|
|
|
|
create_admin_user()
|
2019-08-11 22:49:29 +02:00
|
|
|
net = mixer.blend('inventory.Net')
|
2019-08-06 22:03:46 +02:00
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
|
|
|
response = client.get('/net/100/')
|
2019-09-01 12:08:23 +02:00
|
|
|
assert response.status_code == 404
|
2019-08-06 22:03:46 +02:00
|
|
|
|
|
|
|
|
|
|
|
def test_backup_detail_view_not_logged_in():
|
2019-08-15 18:40:29 +02:00
|
|
|
response = Client().get('/backup/1/')
|
|
|
|
assert response.status_code == 302 and 'login' in response.url
|
2019-08-06 22:03:46 +02:00
|
|
|
|
|
|
|
|
|
|
|
def test_backup_detail_view(create_admin_user):
|
2019-08-11 22:52:19 +02:00
|
|
|
create_admin_user()
|
2019-08-30 23:15:36 +02:00
|
|
|
mixer.blend('inventory.Computer')
|
|
|
|
backup = mixer.blend('inventory.Backup', computer=mixer.SELECT)
|
2019-08-06 22:03:46 +02:00
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
2019-08-30 23:14:47 +02:00
|
|
|
response = client.get('/backup/' + str(backup.id) + '/')
|
2019-08-11 22:52:19 +02:00
|
|
|
assert response.status_code == 200 and in_content(response, backup.name)
|
2019-08-06 22:03:46 +02:00
|
|
|
|
|
|
|
|
|
|
|
def test_backup_detail_view_not_found(create_admin_user):
|
|
|
|
create_admin_user()
|
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
|
|
|
response = client.get('/backup/100/')
|
2019-08-11 22:52:37 +02:00
|
|
|
assert response.status_code == 200
|
2019-08-06 22:03:46 +02:00
|
|
|
|
|
|
|
|
2019-08-06 22:13:15 +02:00
|
|
|
def test_computer_list_view_not_logged_in():
|
2019-08-15 18:40:29 +02:00
|
|
|
response = Client().get('/computers/all/')
|
|
|
|
assert response.status_code == 302 and 'login' in response.url
|
2019-08-06 22:13:15 +02:00
|
|
|
|
|
|
|
|
2019-08-11 22:53:54 +02:00
|
|
|
def test_computer_list_view_no_computers(create_admin_user):
|
|
|
|
create_admin_user()
|
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
|
|
|
response = client.get('/computers/all/')
|
|
|
|
assert response.status_code == 200
|
2019-08-06 22:13:15 +02:00
|
|
|
|
|
|
|
|
2019-08-11 22:54:33 +02:00
|
|
|
def test_computer_list_view(create_admin_user):
|
2019-08-30 21:04:00 +02:00
|
|
|
fixture = create_admin_user()
|
|
|
|
computer = mixer.blend('inventory.Computer',
|
|
|
|
customer=fixture['customer'])
|
2019-08-11 22:54:33 +02:00
|
|
|
client = Client()
|
|
|
|
client.login(username="novartis-admin", password="password")
|
|
|
|
response = client.get('/computers/all/')
|
|
|
|
assert response.status_code == 200 and in_content(response, computer.name)
|