Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-27 07:41:43

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 SystemAgentAPITests(APITestCase):
0017     def setUp(self):
0018         unique_username = f"testuser_{uuid.uuid4()}"
0019         self.user = User.objects.create_user(username=unique_username, password='testpassword')
0020         self.client.force_authenticate(user=self.user)
0021         self.agent = SystemAgent.objects.create(instance_name='test_agent', agent_type='test', status='OK')
0022 
0023     def test_list_agents(self):
0024         url = reverse('monitor_app:systemagent-list')
0025         response = self.client.get(url)
0026         self.assertEqual(response.status_code, status.HTTP_200_OK)
0027 
0028     def test_create_agent(self):
0029         url = reverse('monitor_app:systemagent-list')
0030         data = {'instance_name': 'new_agent', 'agent_type': 'test', 'status': 'OK'}
0031         response = self.client.post(url, data, format='json')
0032         self.assertEqual(response.status_code, status.HTTP_201_CREATED)
0033 
0034     def test_partial_update_agent(self):
0035         url = reverse('monitor_app:systemagent-detail', kwargs={'pk': self.agent.pk})
0036         data = {'status': 'ERROR'}
0037         response = self.client.patch(url, data, format='json')
0038         self.assertEqual(response.status_code, status.HTTP_200_OK)
0039         self.agent.refresh_from_db()
0040         self.assertEqual(self.agent.status, 'ERROR')
0041 
0042     def test_delete_agent(self):
0043         url = reverse('monitor_app:systemagent-detail', kwargs={'pk': self.agent.pk})
0044         response = self.client.delete(url)
0045         self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
0046         self.assertFalse(SystemAgent.objects.filter(pk=self.agent.pk).exists())
0047 
0048     def test_create_agent_bad_data(self):
0049         url = reverse('monitor_app:systemagent-list')
0050         data = {'instance_name': 'new_agent'} # Missing agent_type and status
0051         response = self.client.post(url, data, format='json')
0052         self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
0053 
0054     def test_update_non_existent_agent(self):
0055         url = reverse('monitor_app:systemagent-detail', kwargs={'pk': 999})
0056         data = {'status': 'ERROR'}
0057         response = self.client.patch(url, data, format='json')
0058         self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
0059 
0060     def test_delete_non_existent_agent(self):
0061         url = reverse('monitor_app:systemagent-detail', kwargs={'pk': 999})
0062         response = self.client.delete(url)
0063         self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)