-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
197 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
from rest_framework.test import APITestCase | ||
|
||
from users.models import CustomUser | ||
|
||
|
||
class AuthBaseTestCase(APITestCase): | ||
email = "@testuser.com" | ||
password = "12345Hola" | ||
|
||
def setUp(self): | ||
self.user = CustomUser.objects.create_user('user', 'user'+self.email, self.password) | ||
self.jefe = CustomUser.objects.create_user('jefe', 'jefe'+self.email, self.password) | ||
self.emp1 = CustomUser.objects.create_user('emp1', 'emp1'+self.email, self.password) | ||
self.emp2 = CustomUser.objects.create_user('emp2', 'emp2'+self.email, self.password) | ||
self.client.login(username='jefe', password=self.password) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
import json | ||
|
||
from users.models import CustomUser | ||
|
||
from api.models import * | ||
from api.serializers import * | ||
|
||
from .authBase import AuthBaseTestCase | ||
|
||
|
||
|
||
class BoardTestCase(AuthBaseTestCase): | ||
url = '/api/v1/boards' | ||
|
||
def setUp(self): | ||
super().setUp() # Authenticanting | ||
self.data_project = { | ||
"title": "black mesa", | ||
"description": "particle accelerator", | ||
"creator": self.jefe, | ||
} | ||
self.project = Project.objects.create(**self.data_project) | ||
self.boards = Board.objects.all() | ||
self.board = self.boards[0] | ||
print(self.boards) | ||
print(self.board) | ||
self.data_task = { | ||
"title": "task 1", | ||
"description": "first task", | ||
"priority": 1, | ||
"due_date": "2019-11-11", | ||
"board": self.board, | ||
} | ||
self.task = Task.objects.create(**self.data_task) | ||
self.data_task['board'] = self.board.id | ||
|
||
|
||
def test_read_board_get(self): | ||
""" | ||
Test to verify GET board valid (Model and Serializer) | ||
""" | ||
url = self.url + '?project={id}'.format(id=self.project.id) | ||
response = self.client.get(url) | ||
print(response.status_code, response.content) | ||
self.assertEqual(200, response.status_code) | ||
response_data = json.loads(response.content) | ||
print(response_data) | ||
boardSerial = BoardSerializer(instance=self.board) | ||
boardsSerial= [BoardSerializer(instance=x).data for x in self.boards] | ||
print(boardSerial.data) | ||
print(boardsSerial) | ||
self.assertEqual(boardsSerial, response_data['results']) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,126 @@ | ||
import json | ||
|
||
from users.models import CustomUser | ||
|
||
from api.models import * | ||
from api.serializers import * | ||
|
||
from .authBase import AuthBaseTestCase | ||
|
||
|
||
|
||
class TaskTestCase(AuthBaseTestCase): | ||
url = '/api/v1/tasks' | ||
|
||
def setUp(self): | ||
super().setUp() # Authenticanting | ||
self.data_project = { | ||
"title": "black mesa", | ||
"description": "particle accelerator", | ||
"creator": self.jefe, | ||
} | ||
self.project = Project.objects.create(**self.data_project) | ||
self.boards = Board.objects.all() | ||
self.board = self.boards[0] | ||
print(self.boards) | ||
print(self.board) | ||
self.data = { | ||
"title": "task 1", | ||
"description": "first task", | ||
"priority": 1, | ||
"due_date": "2019-11-11", | ||
"board": self.board, | ||
} | ||
self.task = Task.objects.create(**self.data) | ||
self.data['board'] = self.board.id | ||
|
||
|
||
def test_read_task_get(self): | ||
""" | ||
Test to verify GET task valid (Model and Serializer) | ||
""" | ||
print('before get') | ||
url = self.url + '?board={id}'.format(id=self.board.id) | ||
response = self.client.get(url) | ||
print(response.status_code, response.content) | ||
self.assertEqual(200, response.status_code) | ||
response_data = json.loads(response.content) | ||
print(response_data) | ||
taskSerial = TaskSerializer(instance=self.task) | ||
print(taskSerial.data) | ||
self.assertEqual(taskSerial.data, response_data['results'][0]) | ||
|
||
|
||
def test_create_task_post(self): | ||
""" | ||
Test to verify POST task valid | ||
""" | ||
self.data['title'] = 'task 2' | ||
self.data['description'] = 'second task' | ||
self.data['board'] = self.board.id | ||
response = self.client.post(self.url, self.data) | ||
print(response.status_code, response.content) | ||
self.assertEqual(201, response.status_code) | ||
|
||
url = self.url + '?board={id}'.format(id=self.board.id) | ||
response = self.client.get(url) | ||
print(response.status_code, response.content) | ||
self.assertEqual(200, response.status_code) | ||
response_data = json.loads(response.content) | ||
self.assertEqual(2, response_data['count']) # 2 projects | ||
|
||
|
||
def test_delete_task_delete(self): | ||
""" | ||
Test to verify DELETE task valid | ||
""" | ||
url = self.url+'/{task_id}?board={board_id}'.format( | ||
task_id=self.task.id, board_id=self.board.id) | ||
response = self.client.get(url) | ||
print(response.status_code, response.content) | ||
self.assertEqual(200, response.status_code) | ||
|
||
response = self.client.delete(url) | ||
print(response.status_code, response.content) | ||
self.assertEqual(204, response.status_code) | ||
self.assertEqual(b'', response.content) | ||
|
||
|
||
def test_update_task_patch(self): | ||
""" | ||
Test to verify PATCH task valid | ||
""" | ||
data = {'title': 'Task 1(one)'} | ||
url = self.url+'/{task_id}?board={board_id}'.format( | ||
task_id=self.task.id, board_id=self.board.id) | ||
response = self.client.get(url) | ||
print(response.status_code, response.content) | ||
self.assertEqual(200, response.status_code) | ||
|
||
response = self.client.patch(url, data) | ||
print(response.status_code, response.content) | ||
self.assertEqual(200, response.status_code) | ||
response_data = json.loads(response.content) | ||
print(response_data) | ||
self.assertEqual(data['title'], response_data['title']) # updated | ||
|
||
|
||
def test_update_task_put(self): | ||
""" | ||
Test to verify PUT task valid | ||
""" | ||
data = dict(self.data) # copy | ||
data['title'] = 'Task 1(one)' | ||
|
||
url = self.url+'/{task_id}?board={board_id}'.format( | ||
task_id=self.task.id, board_id=self.board.id) | ||
response = self.client.get(url) | ||
print(response.status_code, response.content) | ||
self.assertEqual(200, response.status_code) | ||
|
||
response = self.client.put(url, data) | ||
print(response.status_code, response.content) | ||
self.assertEqual(200, response.status_code) | ||
response_data = json.loads(response.content) | ||
print(response_data) | ||
self.assertEqual(data['title'], response_data['title']) # updated |