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 AppLogUITests(TestCase):
0017 def setUp(self):
0018 unique_username = f"ui_user_{uuid.uuid4()}"
0019 self.user = User.objects.create_user(username=unique_username, password='password')
0020 self.client.login(username=unique_username, password='password')
0021 now = timezone.now()
0022 AppLog.objects.create(app_name='app1', instance_name='inst1', level=logging.INFO, message='info message 1', timestamp=now, levelname='INFO', module='m', funcname='f', lineno=1, process=1, thread=1)
0023 AppLog.objects.create(app_name='app1', instance_name='inst1', level=logging.WARNING, message='warning message 1', timestamp=now, levelname='WARNING', module='m', funcname='f', lineno=1, process=1, thread=1)
0024 AppLog.objects.create(app_name='app1', instance_name='inst2', level=logging.ERROR, message='error message 1', timestamp=now, levelname='ERROR', module='m', funcname='f', lineno=1, process=1, thread=1)
0025 AppLog.objects.create(app_name='app2', instance_name='inst1', level=logging.INFO, message='info message 2', timestamp=now, levelname='INFO', module='m', funcname='f', lineno=1, process=1, thread=1)
0026
0027 def test_log_list_view(self):
0028 response = self.client.get(reverse('monitor_app:log_list'))
0029 self.assertEqual(response.status_code, 200)
0030 html = response.content.decode()
0031
0032 self.assertIn('<html', html.lower())
0033
0034 self.assertIn('<table', html.lower())
0035
0036 def test_log_list_view_filtered(self):
0037 response = self.client.get(reverse('monitor_app:log_list') + '?app_name=app1&instance_name=inst1')
0038 self.assertEqual(response.status_code, 200)
0039 html = response.content.decode()
0040 self.assertIn('<html', html.lower())
0041
0042 self.assertIn('<table', html.lower())
0043
0044 def test_log_summary_view(self):
0045 response = self.client.get(reverse('monitor_app:log_summary'))
0046 self.assertEqual(response.status_code, 200)
0047 html = response.content.decode()
0048 self.assertIn('<html', html.lower())
0049
0050 self.assertRegex(html, r'<table|<div')