From eb8710b225c373d99fbb49f3276866cccfb6ec40 Mon Sep 17 00:00:00 2001 From: Nir Izraeli Date: Thu, 22 Dec 2016 12:03:23 +0200 Subject: [PATCH 1/3] Make all test requests content type json Signed-off-by: Nir Izraeli --- tests/server/collab/test_all.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/server/collab/test_all.py b/tests/server/collab/test_all.py index 660820fa2..67b192955 100644 --- a/tests/server/collab/test_all.py +++ b/tests/server/collab/test_all.py @@ -120,7 +120,8 @@ def assert_response(response, status, data=None): @pytest.mark.django_db @pytest.mark.parametrize('model_name', collab_models.keys()) def test_empty_lists(client, model_name): - response = client.get('/collab/{}/'.format(model_name)) + response = client.get('/collab/{}/'.format(model_name), + content_type="application/json") assert_response(response, status.HTTP_200_OK, []) @@ -131,7 +132,8 @@ def test_model_guest_list(client, admin_user, model_name): obj = create_model(model_name, admin_user) obj.save() - response = client.get('/collab/{}/'.format(model_name)) + response = client.get('/collab/{}/'.format(model_name), + content_type="application/json") assert_response(response, status.HTTP_200_OK, [obj]) @@ -158,7 +160,8 @@ def test_model_creation(client, admin_client, admin_user, model_name): assert_response(response, status.HTTP_201_CREATED) projects_created = [response.json()] - response = client.get('/collab/{}/'.format(model_name)) + response = client.get('/collab/{}/'.format(model_name), + content_type="application/json") assert_eq(response.json(), projects_created) From 11bd3f6ccdfbd084738c4573fd640b6ad4ab990f Mon Sep 17 00:00:00 2001 From: Nir Izraeli Date: Mon, 2 Jan 2017 16:04:09 +0200 Subject: [PATCH 2/3] use client_api instead of client for tests Signed-off-by: Nir Izraeli --- tests/server/collab/test_all.py | 47 ++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/tests/server/collab/test_all.py b/tests/server/collab/test_all.py index 67b192955..df2142aff 100644 --- a/tests/server/collab/test_all.py +++ b/tests/server/collab/test_all.py @@ -1,7 +1,6 @@ import pytest -import json from functools import partial -from rest_framework import status +from rest_framework import status, test from django.db import models from collab.models import Project, File, FileVersion, Task, Instance, Vector @@ -9,6 +8,18 @@ import random +@pytest.fixture +def api_client(db): + return test.APIClient() + + +@pytest.fixture +def admin_api_client(db, admin_user): + client = test.APIClient() + client.force_authenticate(user=admin_user) + return client + + def rand_hash(n): return ''.join(random.choice("01234567890ABCDEF") for _ in range(n)) @@ -119,49 +130,49 @@ def assert_response(response, status, data=None): @pytest.mark.django_db @pytest.mark.parametrize('model_name', collab_models.keys()) -def test_empty_lists(client, model_name): - response = client.get('/collab/{}/'.format(model_name), - content_type="application/json") +def test_empty_lists(api_client, model_name): + response = api_client.get('/collab/{}/'.format(model_name), + HTTP_ACCEPT='application/json') assert_response(response, status.HTTP_200_OK, []) @pytest.mark.django_db @pytest.mark.parametrize('model_name', collab_models.keys()) -def test_model_guest_list(client, admin_user, model_name): +def test_model_guest_list(api_client, admin_user, model_name): # setup objects obj = create_model(model_name, admin_user) obj.save() - response = client.get('/collab/{}/'.format(model_name), - content_type="application/json") + response = api_client.get('/collab/{}/'.format(model_name), + HTTP_ACCEPT="application/json") assert_response(response, status.HTTP_200_OK, [obj]) @pytest.mark.django_db @pytest.mark.parametrize('model_name', collab_models.keys()) -def test_model_guest_creation(client, admin_user, model_name): +def test_model_guest_creation(api_client, admin_user, model_name): model_data = setup_model(model_name, admin_user) - response = client.post('/collab/{}/'.format(model_name), - data=json.dumps(model_data), - content_type="application/json") + response = api_client.post('/collab/{}/'.format(model_name), + data=model_data, + HTTP_ACCEPT="application/json") assert_response(response, status.HTTP_401_UNAUTHORIZED) @pytest.mark.django_db @pytest.mark.parametrize('model_name', collab_models.keys()) -def test_model_creation(client, admin_client, admin_user, model_name): +def test_model_creation(api_client, admin_api_client, admin_user, model_name): model_data = setup_model(model_name, admin_user) - response = admin_client.post('/collab/{}/'.format(model_name), - data=json.dumps(model_data), - content_type="application/json") + response = admin_api_client.post('/collab/{}/'.format(model_name), + data=model_data, + HTTP_ACCEPT='application/json') assert_response(response, status.HTTP_201_CREATED) projects_created = [response.json()] - response = client.get('/collab/{}/'.format(model_name), - content_type="application/json") + response = api_client.get('/collab/{}/'.format(model_name), + HTTP_ACCEPT="application/json") assert_eq(response.json(), projects_created) From ecde222ef312d264096416ae35954e1bf1b5c057 Mon Sep 17 00:00:00 2001 From: Nir Izraeli Date: Thu, 12 Jan 2017 13:04:35 +0200 Subject: [PATCH 3/3] Add simple template test Signed-off-by: Nir Izraeli --- tests/server/collab/test_all.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/server/collab/test_all.py b/tests/server/collab/test_all.py index df2142aff..00b39ffe0 100644 --- a/tests/server/collab/test_all.py +++ b/tests/server/collab/test_all.py @@ -9,12 +9,12 @@ @pytest.fixture -def api_client(db): +def api_client(): return test.APIClient() @pytest.fixture -def admin_api_client(db, admin_user): +def admin_api_client(admin_user): client = test.APIClient() client.force_authenticate(user=admin_user) return client @@ -176,6 +176,11 @@ def test_model_creation(api_client, admin_api_client, admin_user, model_name): assert_eq(response.json(), projects_created) +def test_template(admin_client): + response = admin_client.get('/accounts/profile/') + assert_response(response, status.HTTP_200_OK) + + @pytest.mark.django_db def test_file_fileversion(admin_client, admin_user): file = create_model('files', admin_user)