network_inventory/src/devices/tests/test_warranty_list.py

86 lines
3.0 KiB
Python

from datetime import datetime
from datetime import timedelta
import pytest
from mixer.backend.django import mixer
from django.test import Client
from core.tests import helper
pytestmark = pytest.mark.django_db
def test_warranties_view_not_logged_in():
response = Client().get("/warranties/")
assert response.status_code == 302 and "login" in response.url
def test_warranties_no_warranties_found(create_admin_user):
create_admin_user()
client = Client()
customer = mixer.blend("customers.Customer")
device = mixer.blend("devices.Device", customer=customer)
warranty = mixer.blend(
"devices.Warranty",
device=device,
valid_from="1999-01-01",
valid_until="2000-01-01",
)
client.login(username="pharma-admin", password="password")
response = client.get("/warranties/")
assert response.status_code == 200 and helper.not_in_content(
response, warranty.customer
)
def test_warranties_view_plenty_of_time(create_admin_user):
fixture = create_admin_user()
user = fixture["admin"]
user.save()
device = mixer.blend("devices.Device", customer=fixture["customer"])
more_than_one_year = datetime.date(datetime.today() + timedelta(400))
mixer.blend("devices.Warranty", device=device, valid_until=more_than_one_year)
client = Client()
client.login(username="pharma-admin", password="password")
response = client.get("/warranties/")
# Problems with the bgcolor attribute prevent the use of helper.in_content
assert (
response.status_code == 200
and ('bgcolor="orange"' not in response.content.decode("utf8"))
and ('bgcolor="red"' not in response.content.decode("utf8"))
)
def test_warranties_view_warranty_expired(create_admin_user):
fixture = create_admin_user()
device = mixer.blend("devices.Device", customer=fixture["customer"])
mixer.blend(
"devices.Warranty",
device=device,
valid_from="1999-01-01",
valid_until="2000-01-01",
)
client = Client()
client.login(username="pharma-admin", password="password")
response = client.get("/warranties/")
# Problems with the bgcolor attribute prevent the use of helper.in_content
assert response.status_code == 200 and (
'bgcolor="red"' in response.content.decode("utf8")
)
def test_warranties_view_warranty_one_year_till_expiration(create_admin_user):
fixture = create_admin_user()
user = fixture["admin"]
user.save()
device = mixer.blend("devices.Device", customer=fixture["customer"])
not_one_year_more = datetime.date(datetime.today() + timedelta(200))
mixer.blend("devices.Warranty", device=device, valid_until=not_one_year_more)
client = Client()
client.login(username="pharma-admin", password="password")
response = client.get("/warranties/")
# Problems with the bgcolor attribute prevent the use of helper.in_content
assert response.status_code == 200 and (
'bgcolor="orange"' in response.content.decode("utf8")
)