tacticalrmm/api/djangormm/agents/tests.py

100 lines
2.8 KiB
Python

from djangormm.test import BaseTestCase
from .serializers import AgentSerializer
from .models import Agent
class TestAgentViews(BaseTestCase):
def test_agents_list(self):
url = "/agents/listagents/"
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
self.check_not_authenticated("get", url)
def test_agents_agent_detail(self):
url = f"/agents/{self.agent.pk}/agentdetail/"
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
self.check_not_authenticated("get", url)
def test_edit_agent(self):
url = "/agents/editagent/"
edit = {
"pk": self.agent.pk,
"client": "Facebook",
"site": "NY Office",
"montype": "workstation",
"desc": "asjdk234andasd",
"overduetime": 300,
"pinginterval": 60,
"emailalert": True,
"textalert": False,
}
r = self.client.patch(url, edit, format="json")
self.assertEqual(r.status_code, 200)
agent = Agent.objects.get(pk=self.agent.pk)
data = AgentSerializer(agent).data
self.assertEqual(data["site"], "NY Office")
self.check_not_authenticated("patch", url)
def test_meshcentral_tabs(self):
url = f"/agents/{self.agent.pk}/meshtabs/"
r = self.client.get(url)
self.assertIn("viewmode", r.data["fileurl"])
self.check_not_authenticated("get", url)
def test_takecontrols(self):
url = f"/agents/{self.agent.pk}/takecontrol/"
r = self.client.get(url)
self.assertIn("hide", r.data)
self.check_not_authenticated("get", url)
def test_by_client(self):
url = "/agents/byclient/Google/"
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
self.assertTrue(r.data)
url = f"/agents/byclient/Majh3 Akj34 ad/"
r = self.client.get(url)
self.assertFalse(r.data) # returns empty list
self.check_not_authenticated("get", url)
def test_by_site(self):
url = f"/agents/bysite/Google/Main Office/"
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
self.assertTrue(r.data)
url = f"/agents/bysite/Google/Ajdaksd Office/"
r = self.client.get(url)
self.assertFalse(r.data)
self.check_not_authenticated("get", url)
def test_overdue_action(self):
url = "/agents/overdueaction/"
payload = {"pk": self.agent.pk, "alertType": "email", "action": "enabled"}
r = self.client.post(url, payload, format="json")
self.assertEqual(r.status_code, 200)
agent = Agent.objects.get(pk=self.agent.pk)
self.assertTrue(agent.overdue_email_alert)
self.check_not_authenticated("post", url)