File indexing completed on 2026-04-27 07:41:42
0001 from django.test import TestCase
0002 from django.urls import reverse
0003 from django.contrib.auth.models import User
0004 from django.utils import timezone
0005 from rest_framework.test import APITestCase, APIClient
0006 from rest_framework import status
0007 from monitor_app.models import SystemAgent, AppLog, Run, StfFile, Subscriber
0008 from monitor_app.serializers import AppLogSerializer
0009 from django.core.management import call_command
0010 from io import StringIO
0011 import logging
0012 import uuid
0013 import re
0014
0015
0016 class MonitorAppUITests(TestCase):
0017 def setUp(self):
0018 self.user = User.objects.create_user(username='ui_user', password='password')
0019 self.staff_user = User.objects.create_user(username='staff_user', password='password', is_staff=True)
0020 self.agent = SystemAgent.objects.create(instance_name='ui_agent', agent_type='test', status='OK')
0021
0022 def test_index_view_unauthenticated(self):
0023 response = self.client.get(reverse('monitor_app:index'))
0024 self.assertEqual(response.status_code, 302)
0025
0026 def test_index_view_authenticated(self):
0027 self.client.login(username='ui_user', password='password')
0028 response = self.client.get(reverse('monitor_app:index'))
0029 self.assertEqual(response.status_code, 200)
0030
0031 def test_create_agent_view_as_staff(self):
0032 self.client.login(username='staff_user', password='password')
0033 url = reverse('monitor_app:system_agent_create')
0034 data = {'instance_name': 'new_ui_agent', 'agent_type': 'test', 'status': 'OK'}
0035 response = self.client.post(url, data)
0036 self.assertEqual(response.status_code, 302)
0037 self.assertTrue(SystemAgent.objects.filter(instance_name='new_ui_agent').exists())
0038
0039 def test_create_agent_view_as_non_staff(self):
0040 self.client.login(username='ui_user', password='password')
0041 url = reverse('monitor_app:system_agent_create')
0042 data = {'instance_name': 'new_ui_agent', 'agent_type': 'test', 'status': 'OK'}
0043 response = self.client.post(url, data)
0044 self.assertEqual(response.status_code, 403)
0045
0046 def test_delete_agent_view(self):
0047 self.client.login(username='staff_user', password='password')
0048 url = reverse('monitor_app:system_agent_delete', kwargs={'pk': self.agent.pk})
0049 response = self.client.post(url)
0050 self.assertEqual(response.status_code, 302)
0051 self.assertFalse(SystemAgent.objects.filter(pk=self.agent.pk).exists())
0052
0053 def test_update_agent_view_get(self):
0054 self.client.login(username='staff_user', password='password')
0055 url = reverse('monitor_app:system_agent_update', kwargs={'pk': self.agent.pk})
0056 response = self.client.get(url)
0057 self.assertEqual(response.status_code, 200)
0058 self.assertContains(response, self.agent.instance_name)
0059
0060 def test_update_non_existent_agent_view(self):
0061 self.client.login(username='staff_user', password='password')
0062 url = reverse('monitor_app:system_agent_update', kwargs={'pk': 999})
0063 response = self.client.get(url)
0064 self.assertEqual(response.status_code, 404)
0065
0066 def test_delete_non_existent_agent_view(self):
0067 self.client.login(username='staff_user', password='password')
0068 url = reverse('monitor_app:system_agent_delete', kwargs={'pk': 999})
0069 response = self.client.get(url)
0070 self.assertEqual(response.status_code, 404)