server/python/django2/renkanmanager/tests/v1_0/tests_workspace.py
author ymh <ymh.work@gmail.com>
Mon, 20 Jun 2016 14:44:40 +0200
changeset 615 f3875fbe206a
parent 613 e00a24b711a0
permissions -rw-r--r--
redo foreign key for renkanmanager, optimize property access, correct unit tests
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
     1
from django.core.urlresolvers import reverse
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
     2
from rest_framework.test import APITestCase
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
     3
from rest_framework import status
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
     4
from renkanmanager.models import Renkan, Workspace
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
     5
from django.contrib.auth import get_user_model
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
     6
import json
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
     7
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
     8
User = get_user_model()
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
     9
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    10
class WorkspaceTests(APITestCase):
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    11
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    12
    def setUp(self):
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    13
        User.objects.create_superuser("blop", "blop@blop.com", "blop")
593
2ff785d7026c corrected tests and serializer so they can support custom user model, added a readme (to be expanded) with configuration information for the field renkan api will use to render user information
durandn
parents: 590
diff changeset
    14
        self.user = User.objects.get_by_natural_key("blop")
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    15
        _ = self.client.login(username="blop", password="blop")
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    16
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    17
    def test_post_workspace(self):
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    18
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    19
        ###################################################
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    20
        # POSTing test Workspace
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    21
        ###################################################
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    22
590
3be2a86981c2 API versioning via namespace
durandn
parents: 589
diff changeset
    23
        post_url = reverse("v1.0:workspace_list")
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    24
        test_title = "bleh_title"
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    25
        data = {"title": test_title}
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    26
        post_response = self.client.post(post_url, data, format="json")
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    27
        post_response_dict = json.loads(post_response.content.decode())
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    28
        self.assertEqual(post_response.status_code, status.HTTP_201_CREATED)
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    29
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    30
        # Checking data
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    31
        #    in the response
593
2ff785d7026c corrected tests and serializer so they can support custom user model, added a readme (to be expanded) with configuration information for the field renkan api will use to render user information
durandn
parents: 590
diff changeset
    32
        self.assertEqual(post_response_dict.get("workspace_created_by"), getattr(self.user, User.USERNAME_FIELD))
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    33
        self.assertEqual(post_response_dict.get("title"), test_title)
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    34
        #    in the database
589
0ae11aa255a3 Moved python2/django into a django2 folder for consistency + clarified serializers fields name
durandn
parents: 588
diff changeset
    35
        created_workspace_guid = post_response_dict.get("id")
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    36
        created_workspace = Workspace.objects.get(workspace_guid=created_workspace_guid)
593
2ff785d7026c corrected tests and serializer so they can support custom user model, added a readme (to be expanded) with configuration information for the field renkan api will use to render user information
durandn
parents: 590
diff changeset
    37
        self.assertEqual(getattr(created_workspace.creator, User.USERNAME_FIELD), getattr(self.user, User.USERNAME_FIELD))
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    38
        self.assertEqual(created_workspace.title, test_title)
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    39
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    40
        # Checking permission
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    41
        self.assertTrue(self.user.has_perm("view_workspace", created_workspace))
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    42
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    43
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    44
    def test_get_workspace_list(self):
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    45
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    46
        ###################################################
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    47
        # POSTing new Workspaces
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    48
        ###################################################
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    49
590
3be2a86981c2 API versioning via namespace
durandn
parents: 589
diff changeset
    50
        post_url = reverse("v1.0:workspace_list")
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    51
        first_test_title = "bleh_title_2"
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    52
        second_test_title = "bleh_title_3"
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    53
        first_data = {"title": first_test_title}
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    54
        second_data = {"title": second_test_title}
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    55
        self.client.post(post_url, first_data, format="json")
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    56
        self.client.post(post_url, second_data, format="json")
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    57
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    58
        ###################################################
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    59
        # GETting Workspaces
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    60
        ###################################################
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    61
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    62
        get_url = post_url
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    63
        get_response = self.client.get(get_url, format=json)
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    64
        self.assertEqual(get_response.status_code, status.HTTP_200_OK)
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    65
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    66
        # Check data
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    67
        get_response_content = json.loads(get_response.content.decode()) # Should be a list
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    68
        self.assertTrue(isinstance(get_response_content, list))
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    69
        self.assertEqual(len(get_response_content), 2)
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    70
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    71
    def test_get_workspace(self):
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    72
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    73
        ###################################################
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    74
        # POSTing test Workspace
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    75
        ###################################################
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    76
590
3be2a86981c2 API versioning via namespace
durandn
parents: 589
diff changeset
    77
        workspace_post_url = reverse("v1.0:workspace_list")
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    78
        test_title = "bleh_title"
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    79
        data = {"title": test_title}
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    80
        post_response = self.client.post(workspace_post_url, data, format="json")
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    81
        post_response_dict = json.loads(post_response.content.decode())
589
0ae11aa255a3 Moved python2/django into a django2 folder for consistency + clarified serializers fields name
durandn
parents: 588
diff changeset
    82
        test_workspace_guid = post_response_dict.get("id")
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    83
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    84
        ###################################################
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    85
        # POSTing new Renkans into test Workspace
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    86
        ###################################################
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    87
590
3be2a86981c2 API versioning via namespace
durandn
parents: 589
diff changeset
    88
        renkan_post_url = reverse("v1.0:renkan_list_workspace", kwargs={"workspace_guid": test_workspace_guid})
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    89
        first_test_title = "bleh_title"
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    90
        second_test_title = "bleh_title_2"
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    91
        first_data = {"title": first_test_title}
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    92
        second_data = {"title": second_test_title}
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    93
        self.client.post(renkan_post_url, first_data, format="json")
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
    94
        self.client.post(renkan_post_url, second_data, format="json")
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    95
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    96
        ###################################################
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    97
        # GETting test Workspace
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
    98
        ###################################################
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
    99
590
3be2a86981c2 API versioning via namespace
durandn
parents: 589
diff changeset
   100
        get_url = reverse("v1.0:workspace_detail", kwargs={"workspace_guid": test_workspace_guid})
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   101
        get_response = self.client.get(get_url, format="json")
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   102
        self.assertEqual(get_response.status_code, status.HTTP_200_OK)
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   103
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   104
        # Checking GET data
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   105
        get_response_dict = json.loads(get_response.content.decode())
589
0ae11aa255a3 Moved python2/django into a django2 folder for consistency + clarified serializers fields name
durandn
parents: 588
diff changeset
   106
        self.assertEqual(test_workspace_guid, get_response_dict.get("id", ""))
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   107
        self.assertEqual(test_title, get_response_dict.get("title", ""))
593
2ff785d7026c corrected tests and serializer so they can support custom user model, added a readme (to be expanded) with configuration information for the field renkan api will use to render user information
durandn
parents: 590
diff changeset
   108
        self.assertEqual(getattr(self.user, User.USERNAME_FIELD), get_response_dict.get("workspace_created_by", ""))
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   109
        self.assertEqual(2, get_response_dict.get("renkan_count"))
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   110
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   111
        ###################################################
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   112
        # GETting wrong workspace_guid
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   113
        ###################################################
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   114
590
3be2a86981c2 API versioning via namespace
durandn
parents: 589
diff changeset
   115
        get_url = reverse("v1.0:workspace_detail", kwargs={"workspace_guid": "bleh-bad-workspace-id"})
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   116
        get_response = self.client.get(get_url, format="json")
615
f3875fbe206a redo foreign key for renkanmanager, optimize property access, correct unit tests
ymh <ymh.work@gmail.com>
parents: 613
diff changeset
   117
        self.assertEqual(get_response.status_code, status.HTTP_400_BAD_REQUEST)
f3875fbe206a redo foreign key for renkanmanager, optimize property access, correct unit tests
ymh <ymh.work@gmail.com>
parents: 613
diff changeset
   118
f3875fbe206a redo foreign key for renkanmanager, optimize property access, correct unit tests
ymh <ymh.work@gmail.com>
parents: 613
diff changeset
   119
        ###################################################
f3875fbe206a redo foreign key for renkanmanager, optimize property access, correct unit tests
ymh <ymh.work@gmail.com>
parents: 613
diff changeset
   120
        # GETting wrong workspace_guid
f3875fbe206a redo foreign key for renkanmanager, optimize property access, correct unit tests
ymh <ymh.work@gmail.com>
parents: 613
diff changeset
   121
        ###################################################
f3875fbe206a redo foreign key for renkanmanager, optimize property access, correct unit tests
ymh <ymh.work@gmail.com>
parents: 613
diff changeset
   122
f3875fbe206a redo foreign key for renkanmanager, optimize property access, correct unit tests
ymh <ymh.work@gmail.com>
parents: 613
diff changeset
   123
        get_url = reverse("v1.0:workspace_detail", kwargs={"workspace_guid": "00000000-0000-0000-0000-000000000000"})
f3875fbe206a redo foreign key for renkanmanager, optimize property access, correct unit tests
ymh <ymh.work@gmail.com>
parents: 613
diff changeset
   124
        get_response = self.client.get(get_url, format="json")
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   125
        self.assertEqual(get_response.status_code, status.HTTP_404_NOT_FOUND)
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   126
615
f3875fbe206a redo foreign key for renkanmanager, optimize property access, correct unit tests
ymh <ymh.work@gmail.com>
parents: 613
diff changeset
   127
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   128
    def test_update_workspace(self):
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   129
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   130
        ###################################################
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   131
        # POSTing test Workspace
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   132
        ###################################################
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   133
590
3be2a86981c2 API versioning via namespace
durandn
parents: 589
diff changeset
   134
        workspace_post_url = reverse("v1.0:workspace_list")
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   135
        test_title = "bleh_title"
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   136
        data = {"title": test_title}
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   137
        post_response = self.client.post(workspace_post_url, data, format="json")
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   138
        post_response_dict = json.loads(post_response.content.decode())
589
0ae11aa255a3 Moved python2/django into a django2 folder for consistency + clarified serializers fields name
durandn
parents: 588
diff changeset
   139
        test_workspace_guid = post_response_dict.get("id")
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   140
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   141
        ###################################################
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   142
        # PUTting into test Workspace
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   143
        ###################################################
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   144
590
3be2a86981c2 API versioning via namespace
durandn
parents: 589
diff changeset
   145
        put_url = reverse("v1.0:workspace_detail", kwargs={"workspace_guid": test_workspace_guid})
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   146
        edited_title = "bleh_title_2"
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   147
        put_data = {"title": edited_title}
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   148
        put_response = self.client.put(put_url, put_data, format="json")
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   149
        put_response_dict = json.loads(put_response.content.decode())
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   150
        self.assertEqual(put_response.status_code, status.HTTP_200_OK)
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   151
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   152
        # Checking data
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   153
        #    in the response
593
2ff785d7026c corrected tests and serializer so they can support custom user model, added a readme (to be expanded) with configuration information for the field renkan api will use to render user information
durandn
parents: 590
diff changeset
   154
        self.assertEqual(put_response_dict.get("workspace_created_by"), getattr(self.user, User.USERNAME_FIELD))
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   155
        self.assertEqual(put_response_dict.get("title"), edited_title)
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   156
        self.assertEqual(put_response_dict.get("renkan_count"), 0)
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   157
        #    in the database
589
0ae11aa255a3 Moved python2/django into a django2 folder for consistency + clarified serializers fields name
durandn
parents: 588
diff changeset
   158
        edited_workspace_guid = put_response_dict.get("id")
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   159
        edited_workspace = Workspace.objects.get(workspace_guid=edited_workspace_guid)
593
2ff785d7026c corrected tests and serializer so they can support custom user model, added a readme (to be expanded) with configuration information for the field renkan api will use to render user information
durandn
parents: 590
diff changeset
   160
        self.assertEqual(getattr(edited_workspace.creator, User.USERNAME_FIELD), getattr(self.user, User.USERNAME_FIELD))
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   161
        self.assertEqual(edited_workspace.title, edited_title)
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   162
        self.assertEqual(edited_workspace.renkan_count, 0)
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   163
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   164
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   165
    def test_delete_workspace(self):
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   166
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   167
        ###################################################
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   168
        # POSTing test Workspace
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   169
        ###################################################
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   170
590
3be2a86981c2 API versioning via namespace
durandn
parents: 589
diff changeset
   171
        workspace_post_url = reverse("v1.0:workspace_list")
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   172
        test_title = "bleh_title"
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   173
        data = {"title": test_title}
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   174
        post_response = self.client.post(workspace_post_url, data, format="json")
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   175
        post_response_dict = json.loads(post_response.content.decode())
589
0ae11aa255a3 Moved python2/django into a django2 folder for consistency + clarified serializers fields name
durandn
parents: 588
diff changeset
   176
        to_delete_workspace_guid = post_response_dict.get("id", "")
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   177
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   178
        ###################################################
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   179
        # POSTing new Renkan into test Workspace
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   180
        ###################################################
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   181
590
3be2a86981c2 API versioning via namespace
durandn
parents: 589
diff changeset
   182
        renkan_post_url = reverse("v1.0:renkan_list_workspace", kwargs={"workspace_guid": to_delete_workspace_guid})
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   183
        renkan_test_title = "bleh_title"
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   184
        renkan_test_data = {"title": renkan_test_title}
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   185
        post_response = self.client.post(renkan_post_url, renkan_test_data, format="json")
589
0ae11aa255a3 Moved python2/django into a django2 folder for consistency + clarified serializers fields name
durandn
parents: 588
diff changeset
   186
        to_delete_renkan_guid = json.loads(post_response.content.decode()).get("id", "")
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   187
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   188
        ###################################################
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   189
        # Try to DELETE test Workspace (should fail, it still contains a Renkan)
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   190
        ###################################################
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   191
590
3be2a86981c2 API versioning via namespace
durandn
parents: 589
diff changeset
   192
        delete_url = reverse("v1.0:workspace_detail", kwargs={"workspace_guid":to_delete_workspace_guid})
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   193
        delete_response = self.client.delete(delete_url, {}, format="json")
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   194
        self.assertEqual(delete_response.status_code, status.HTTP_400_BAD_REQUEST)
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   195
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   196
        ###################################################
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   197
        # DELETE posted Renkan
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   198
        ###################################################
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   199
590
3be2a86981c2 API versioning via namespace
durandn
parents: 589
diff changeset
   200
        delete_renkan_url = reverse("v1.0:renkan_detail", kwargs={"renkan_guid":to_delete_renkan_guid})
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   201
        delete_renkan_response = self.client.delete(delete_renkan_url, format="json")
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   202
        self.assertEqual(delete_renkan_response.status_code, status.HTTP_204_NO_CONTENT)
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   203
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   204
        ###################################################
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   205
        # DELETE test Workspace
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   206
        ###################################################
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   207
590
3be2a86981c2 API versioning via namespace
durandn
parents: 589
diff changeset
   208
        delete_url = reverse("v1.0:workspace_detail", kwargs={"workspace_guid":to_delete_workspace_guid})
588
95536fa18d0d Minor adjustements to properly interact with Renkan client
durandn
parents: 587
diff changeset
   209
        delete_response = self.client.delete(delete_url, {}, format="json")
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   210
        self.assertEqual(delete_response.status_code, status.HTTP_204_NO_CONTENT)
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   211
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   212
        ###################################################
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   213
        # Try to DELETE workspace with wrong guid
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   214
        ###################################################
613
e00a24b711a0 make renkanmanager test run locally
ymh <ymh.work@gmail.com>
parents: 593
diff changeset
   215
590
3be2a86981c2 API versioning via namespace
durandn
parents: 589
diff changeset
   216
        delete_url = reverse("v1.0:workspace_detail", kwargs={"workspace_guid": "bad-workspace-guid"})
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   217
        delete_response = self.client.delete(delete_url, format=json)
615
f3875fbe206a redo foreign key for renkanmanager, optimize property access, correct unit tests
ymh <ymh.work@gmail.com>
parents: 613
diff changeset
   218
        self.assertEqual(delete_response.status_code, status.HTTP_400_BAD_REQUEST)
f3875fbe206a redo foreign key for renkanmanager, optimize property access, correct unit tests
ymh <ymh.work@gmail.com>
parents: 613
diff changeset
   219
f3875fbe206a redo foreign key for renkanmanager, optimize property access, correct unit tests
ymh <ymh.work@gmail.com>
parents: 613
diff changeset
   220
f3875fbe206a redo foreign key for renkanmanager, optimize property access, correct unit tests
ymh <ymh.work@gmail.com>
parents: 613
diff changeset
   221
        ###################################################
f3875fbe206a redo foreign key for renkanmanager, optimize property access, correct unit tests
ymh <ymh.work@gmail.com>
parents: 613
diff changeset
   222
        # Try to DELETE workspace with wrong guid
f3875fbe206a redo foreign key for renkanmanager, optimize property access, correct unit tests
ymh <ymh.work@gmail.com>
parents: 613
diff changeset
   223
        ###################################################
f3875fbe206a redo foreign key for renkanmanager, optimize property access, correct unit tests
ymh <ymh.work@gmail.com>
parents: 613
diff changeset
   224
f3875fbe206a redo foreign key for renkanmanager, optimize property access, correct unit tests
ymh <ymh.work@gmail.com>
parents: 613
diff changeset
   225
        delete_url = reverse("v1.0:workspace_detail", kwargs={"workspace_guid": "00000000-0000-0000-0000-000000000000"})
f3875fbe206a redo foreign key for renkanmanager, optimize property access, correct unit tests
ymh <ymh.work@gmail.com>
parents: 613
diff changeset
   226
        delete_response = self.client.delete(delete_url, format=json)
587
fb0041aa74d3 transfer work on renkanmanager into a renkan/server/python2 folder: reworked models, implemented simple API basic permissions, wrote tests
durandn
parents:
diff changeset
   227
        self.assertEqual(delete_response.status_code, status.HTTP_404_NOT_FOUND)