add agent views tests

This commit is contained in:
wh1te909 2019-10-23 04:57:05 +00:00
parent d498c3b151
commit 5a56eefe02
2 changed files with 118 additions and 10 deletions

View File

@ -1,15 +1,99 @@
from djangormm.test import BaseTestCase
from .serializers import AgentSerializer
from .models import Agent
class TestAgentViews(BaseTestCase):
def test_agents_list(self):
url = "/agents/listagents/"
def test_agents_list_GET(self):
response = self.client.get("/agents/listagents/")
self.assertEqual(response.status_code, 200)
self.client.logout()
response = self.client.get("/agents/listagents/")
self.assertEqual(response.status_code, 401)
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
def test_agents_agent_detail_GET(self):
response = self.client.get(f"/agents/{self.agent.pk}/agentdetail/")
self.assertEqual(response.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)

View File

@ -5,7 +5,7 @@ from rest_framework.test import force_authenticate
from accounts.models import User
from agents.models import Agent
from clients.models import Client, Site
class BaseTestCase(TestCase):
def setUp(self):
@ -65,3 +65,27 @@ class BaseTestCase(TestCase):
mesh_node_id="abcdefghijklmnopAABBCCDD77443355##!!AI%@#$%#*",
status="online",
)
Client.objects.create(client="Google")
Client.objects.create(client="Facebook")
google = Client.objects.get(client="Google")
facebook = Client.objects.get(client="Facebook")
Site.objects.create(client=google, site="Main Office")
Site.objects.create(client=google, site="LA Office")
Site.objects.create(client=google, site="MO Office")
Site.objects.create(client=facebook, site="Main Office")
Site.objects.create(client=facebook, site="NY Office")
def check_not_authenticated(self, method, url):
self.client.logout()
switch = {
"get": self.client.get(url),
"post": self.client.post(url),
"put": self.client.put(url),
"patch": self.client.patch(url),
"delete": self.client.delete(url)
}
r = switch.get(method)
self.assertEqual(r.status_code, 401)