kopia lustrzana https://github.com/OpenDroneMap/WebODM
Add unit tests
rodzic
7433e72857
commit
5a3be07f45
|
@ -0,0 +1,93 @@
|
|||
import logging
|
||||
|
||||
import json
|
||||
from django.contrib.auth.models import User
|
||||
from rest_framework import status
|
||||
from rest_framework.test import APIClient
|
||||
|
||||
from app.models import Project, Task
|
||||
from app.tests.classes import BootTestCase
|
||||
|
||||
logger = logging.getLogger('app.logger')
|
||||
|
||||
class TestApiPreset(BootTestCase):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
|
||||
def test_tags(self):
|
||||
client = APIClient()
|
||||
client.login(username="testuser", password="test1234")
|
||||
|
||||
user = User.objects.get(username="testuser")
|
||||
project = Project.objects.create(
|
||||
owner=user,
|
||||
name="test project",
|
||||
tags="a b c .hidden"
|
||||
)
|
||||
|
||||
# Can retrieve tags
|
||||
res = client.get("/api/projects/{}/".format(project.id))
|
||||
self.assertEqual(res.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(4, len(res.data['tags']))
|
||||
|
||||
# Can update tags
|
||||
res = client.post("/api/projects/{}/edit/".format(project.id), {
|
||||
'tags': ["b", "c", ".hidden"]
|
||||
}, format="json")
|
||||
self.assertEqual(res.status_code, status.HTTP_200_OK)
|
||||
|
||||
project.refresh_from_db()
|
||||
self.assertEqual(project.tags, "b c .hidden")
|
||||
|
||||
# Can search projects by tag
|
||||
project2 = Project.objects.create(
|
||||
owner=user,
|
||||
name="test project2",
|
||||
tags="c d"
|
||||
)
|
||||
|
||||
res = client.get("/api/projects/?search=:c")
|
||||
self.assertEqual(res.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(2, len(res.data))
|
||||
|
||||
res = client.get("/api/projects/?search=:d")
|
||||
self.assertEqual(res.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(1, len(res.data))
|
||||
|
||||
# Can search projects by name
|
||||
res = client.get("/api/projects/?search=project2")
|
||||
self.assertEqual(res.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(1, len(res.data))
|
||||
|
||||
Task.objects.create(project=project, name="TestTask0")
|
||||
task = Task.objects.create(project=project, name="TestTask1", tags="d .hidden")
|
||||
task2 = Task.objects.create(project=project2, name="TestTask2", tags="ee .hidden")
|
||||
|
||||
# Can retrieve task tags
|
||||
res = client.get("/api/projects/{}/tasks/{}/".format(project.id, task.id))
|
||||
self.assertEqual(2, len(res.data['tags']))
|
||||
|
||||
# Can update task tags
|
||||
res = client.patch("/api/projects/{}/tasks/{}/".format(project.id, task.id), {
|
||||
'tags': ["d", "e", ".hidden"]
|
||||
}, format="json")
|
||||
self.assertTrue(res.status_code == status.HTTP_200_OK)
|
||||
|
||||
task.refresh_from_db()
|
||||
self.assertEqual(task.tags, "d e .hidden")
|
||||
|
||||
# Can search task tags
|
||||
res = client.get("/api/projects/?search=::e")
|
||||
self.assertEqual(res.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(1, len(res.data))
|
||||
self.assertEqual(res.data[0]['tasks'][0], task.id)
|
||||
|
||||
res = client.get("/api/projects/?search=::hidden")
|
||||
self.assertEqual(res.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(2, len(res.data))
|
||||
|
||||
# Can search task names
|
||||
res = client.get("/api/projects/?search=TestTask2")
|
||||
self.assertEqual(res.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(1, len(res.data))
|
||||
self.assertEqual(res.data[0]['tasks'][0], task2.id)
|
Ładowanie…
Reference in New Issue