mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-17 05:22:16 +00:00
More optimisation and cleanup (#420)
This commit is contained in:
115
versioning/tests/test_unit.py
Normal file
115
versioning/tests/test_unit.py
Normal file
@@ -0,0 +1,115 @@
|
||||
from datetime import date
|
||||
|
||||
from django.urls import reverse
|
||||
from reversion import revisions as reversion
|
||||
from pytest_django.asserts import assertContains
|
||||
|
||||
from RIGS import models
|
||||
from assets import models as amodels
|
||||
|
||||
|
||||
def create_events(admin_user):
|
||||
models.VatRate.objects.create(start_at='2014-03-05', rate=0.20, comment='test1')
|
||||
|
||||
events = {}
|
||||
|
||||
with reversion.create_revision():
|
||||
reversion.set_user(admin_user)
|
||||
events[1] = models.Event.objects.create(name="TE E1", start_date=date.today())
|
||||
|
||||
with reversion.create_revision():
|
||||
reversion.set_user(admin_user)
|
||||
events[2] = models.Event.objects.create(name="TE E2", start_date='2014-03-05')
|
||||
|
||||
with reversion.create_revision():
|
||||
reversion.set_user(admin_user)
|
||||
events[1].description = "A test description"
|
||||
events[1].save()
|
||||
|
||||
return events
|
||||
|
||||
|
||||
def create_assets(admin_user):
|
||||
working = amodels.AssetStatus.objects.create(name="Working", should_show=True)
|
||||
broken = amodels.AssetStatus.objects.create(name="Broken", should_show=False)
|
||||
lighting = amodels.AssetCategory.objects.create(name="Lighting")
|
||||
|
||||
assets = {}
|
||||
|
||||
with reversion.create_revision():
|
||||
reversion.set_user(admin_user)
|
||||
assets[1] = amodels.Asset.objects.create(asset_id="1991", description="Spaceflower", status=broken,
|
||||
category=lighting, date_acquired=date.today())
|
||||
|
||||
with reversion.create_revision():
|
||||
reversion.set_user(admin_user)
|
||||
assets[2] = amodels.Asset.objects.create(asset_id="0001", description="Virgil", status=working,
|
||||
category=lighting, date_acquired=date.today())
|
||||
|
||||
with reversion.create_revision():
|
||||
reversion.set_user(admin_user)
|
||||
assets[1].status = working
|
||||
assets[1].save()
|
||||
|
||||
return assets
|
||||
|
||||
|
||||
def test_history_loads_successfully(admin_client, admin_user):
|
||||
events = create_events(admin_user)
|
||||
request_url = reverse('event_history', kwargs={'pk': events[1].pk})
|
||||
response = admin_client.get(request_url, follow=True)
|
||||
assert response.status_code == 200
|
||||
assets = create_assets(admin_user)
|
||||
request_url = reverse('asset_history', kwargs={'pk': assets[1].asset_id})
|
||||
response = admin_client.get(request_url, follow=True)
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
def test_activity_feed_loads_successfully(admin_client):
|
||||
request_url = reverse('activity_feed')
|
||||
response = admin_client.get(request_url, follow=True)
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
def test_activity_table_loads_successfully(admin_client):
|
||||
request_url = reverse('activity_table')
|
||||
response = admin_client.get(request_url, follow=True)
|
||||
assert response.status_code == 200
|
||||
|
||||
request_url = reverse('assets_activity_table')
|
||||
response = admin_client.get(request_url, follow=True)
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
# Some edge cases that have caused server errors in the past
|
||||
def test_deleted_event(admin_client, admin_user):
|
||||
events = create_events(admin_user)
|
||||
request_url = reverse('activity_feed')
|
||||
|
||||
events[2].delete()
|
||||
|
||||
response = admin_client.get(request_url, follow=True)
|
||||
assertContains(response, "TE E2")
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
def test_deleted_relation(admin_client, admin_user):
|
||||
events = create_events(admin_user)
|
||||
request_url = reverse('activity_feed')
|
||||
|
||||
with reversion.create_revision():
|
||||
person = models.Person.objects.create(name="Test Person")
|
||||
with reversion.create_revision():
|
||||
events[1].person = person
|
||||
events[1].save()
|
||||
|
||||
# Check response contains person
|
||||
response = admin_client.get(request_url, follow=True)
|
||||
assertContains(response, "Test Person")
|
||||
assert response.status_code == 200
|
||||
# Delete person
|
||||
person.delete()
|
||||
# Check response still contains person
|
||||
response = admin_client.get(request_url, follow=True)
|
||||
assertContains(response, "Test Person")
|
||||
assert response.status_code == 200
|
||||
Reference in New Issue
Block a user