old_console/incident/tests/test_incidents_list.py
2024-11-02 14:12:45 +03:00

83 lines
3.6 KiB
Python

import http
from datetime import datetime, timedelta
import pytest
from django.utils import timezone
from incident.models import Incident
from perms.models import Perm
@pytest.mark.django_db
class TestIncidentsList:
@pytest.fixture
def now(self):
return datetime.now(tz=timezone.utc)
@pytest.fixture(autouse=True)
def incidents(self, now):
Incident.objects.bulk_create([
Incident(timestamp=now, title='Test1', importance=50, event_count=10, events=''),
Incident(timestamp=now - timedelta(hours=1),
title='Test2',
importance=20,
event_count=10,
events=''),
Incident(timestamp=now - timedelta(days=1),
title='Test3',
importance=10,
event_count=10,
events=''),
])
@pytest.fixture(autouse=True)
def setup_tests(self, client, django_user_model, test_server):
# User who can see incidents list
admin = django_user_model.objects.create_superuser(username="root", password="password")
user = django_user_model.objects.create_user(username='pro100ton', password='ponala61')
user.user_permissions.add(Perm.get_rights(Perm.can_view_incidents))
user.user_permissions.add(Perm.get_rights(Perm.can_work_with_incidents))
user.user_permissions.add(Perm.get_rights(Perm.can_view_incidents_list))
# User who can't see incidents list
django_user_model.objects.create_user(username='pro100ton2', password='ponala61')
# User who can work with incidents
user = django_user_model.objects.create_user(username="pro100ton3", password="ponala61")
user.user_permissions.add(Perm.get_rights(Perm.can_view_incidents))
user.user_permissions.add(Perm.get_rights(Perm.can_work_with_incidents))
user.user_permissions.add(Perm.get_rights(Perm.can_view_incidents_list))
# TODO: fix this
@pytest.mark.skip('research')
@pytest.mark.unit
def test_export_incidents_in_csv(self, add_user_with_permissions, get_url, test_server, client):
username = 'user'
password = 'pro100ton'
user = add_user_with_permissions(username=username, password=password,
permissions=[Perm.can_view_incidents_list, Perm.can_export_incidents_list])
client.force_login(user)
response = client.get(get_url('incident-csv-export'))
assert response.status_code == http.HTTPStatus.OK
@pytest.mark.unit
def test_incidents_user_friendly_id_is_different(self):
""" Test for checking if incidents user_friendly statuses differs from each other
PASSED if ID's are different
FAILED otherwise
"""
inc_1 = Incident.objects.create(title='inc_1', importance=10, event_count=10, events='')
inc_2 = Incident.objects.create(title='inc_2', importance=10, event_count=10, events='')
assert inc_1.user_friendly_id != inc_2.user_friendly_id
@pytest.mark.unit
def test_incidents_user_friendly_id_is_different_after_deletion(self, client):
""" Test for checking if incidents user_friendly statuses differs from each other with the deletion of other incs
PASSED if ID's are different
FAILED otherwise
"""
inc_1 = Incident.objects.create(title='inc_1', importance=10, event_count=10, events='')
inc_1.delete()
inc_2 = Incident.objects.create(title='inc_2', importance=10, event_count=10, events='')
assert inc_1.user_friendly_id != inc_2.user_friendly_id