server/python2/django/renkanmanager/tests/tests_revision.py
changeset 588 95536fa18d0d
parent 587 fb0041aa74d3
equal deleted inserted replaced
587:fb0041aa74d3 588:95536fa18d0d
    10 User = get_user_model()
    10 User = get_user_model()
    11 
    11 
    12 class RevisionTests(APITestCase):
    12 class RevisionTests(APITestCase):
    13     
    13     
    14     def setUp(self):
    14     def setUp(self):
    15         User.objects.create_superuser('blop', 'blop@blop.com', 'blop')
    15         User.objects.create_superuser("blop", "blop@blop.com", "blop")
    16         self.user = User.objects.get(username='blop')
    16         self.user = User.objects.get(username="blop")
    17         _ = self.client.login(username='blop', password='blop')
    17         _ = self.client.login(username="blop", password="blop")
    18         User.objects.create_user('blip', 'blip@blip.com', 'blip')
    18         User.objects.create_user("blip", "blip@blip.com", "blip")
    19         self.unauthorized_user = User.objects.get(username='blip')
    19         self.unauthorized_user = User.objects.get(username="blip")
    20         
    20         
    21         ###################################################
    21         ###################################################
    22         # POSTing new Renkan
    22         # POSTing new Renkan
    23         ###################################################
    23         ###################################################
    24         
    24         
    25         post_url = reverse('renkan_list')
    25         post_url = reverse("renkan_list")
    26         self.test_data = {'title': 'test_title', 'content': json.dumps({'mock_data': 'wow'})}
    26         self.test_title = "test_title_1"
    27         post_response = self.client.post(post_url, self.test_data, format='json')
    27         self.test_content = json.dumps({
    28         post_response_dict = json.loads(post_response.content)
    28             "id": "",
    29         self.test_renkan_guid = post_response_dict.get('renkan_guid', '')
    29             "title": "test_title_1",
    30         self.test_initial_revision_guid = post_response_dict.get('current_revision_guid', '')
    30             "description": "test_description_1",
       
    31             "created": "",
       
    32             "updated": "",
       
    33             "edges": [],
       
    34             "nodes": [],
       
    35             "users": [],
       
    36             "space_id": "",
       
    37             "views": []
       
    38         })
       
    39         self.test_data = {"title": self.test_title, "content": self.test_content}
       
    40         post_response = self.client.post(post_url, self.test_data, format="json")
       
    41         post_response_dict = json.loads(post_response.content.decode())
       
    42         self.test_renkan_guid = post_response_dict.get("renkan_guid", "")
       
    43         self.test_initial_revision_guid = post_response_dict.get("current_revision_guid", "")
    31     
    44     
    32     def test_get_revision(self):
    45     def test_get_revision(self):
    33         
    46         
    34         ###################################################
    47         ###################################################
    35         # GETting revision
    48         # GETting revision
    36         ###################################################
    49         ###################################################
    37         
    50         
    38         get_url = reverse('revision_detail', kwargs={'renkan_guid' : self.test_renkan_guid, 'revision_guid': self.test_initial_revision_guid})
    51         get_url = reverse("revision_detail", kwargs={"renkan_guid" : self.test_renkan_guid, "revision_guid": self.test_initial_revision_guid})
    39         get_response = self.client.get(get_url, {}, format='json')
    52         get_response = self.client.get(get_url, {}, format="json")
    40         self.assertEqual(get_response.status_code, status.HTTP_200_OK)
    53         self.assertEqual(get_response.status_code, status.HTTP_200_OK)
    41         
    54         
    42         # Checking data
    55         # Checking data
    43         get_response_dict = json.loads(get_response.content) 
    56         get_response_dict = json.loads(get_response.content.decode()) 
    44         self.assertEqual(get_response_dict.get('revision_guid', ''), self.test_initial_revision_guid)
    57         self.assertEqual(get_response_dict.get("revision_guid", ""), self.test_initial_revision_guid)
    45         self.assertEqual(get_response_dict.get('parent_renkan_guid', ''), self.test_renkan_guid)
    58         self.assertEqual(get_response_dict.get("parent_renkan_guid", ""), self.test_renkan_guid)
    46         self.assertEqual(get_response_dict.get('revision_created_by', ''), self.user.username)
    59         self.assertEqual(get_response_dict.get("revision_created_by", ""), self.user.username)
    47         self.assertEqual(get_response_dict.get('revision_last_updated_by', ''), self.user.username)
    60         self.assertEqual(get_response_dict.get("revision_last_updated_by", ""), self.user.username)
    48         self.assertEqual(get_response_dict.get('title', ''), self.test_data.get('title', ''))
    61         self.assertEqual(get_response_dict.get("title", ""), self.test_data.get("title", ""))
    49         self.assertEqual(get_response_dict.get('content', ''), self.test_data.get('content', ''))
    62         self.assertEqual(get_response_dict.get("content", ""), self.test_data.get("content", ""))
    50         
    63         
    51         ###################################################
    64         ###################################################
    52         # GETting with wrong renkan guid
    65         # GETting with wrong renkan guid
    53         ###################################################
    66         ###################################################
    54         
    67         
    55         get_url = reverse('revision_detail', kwargs={'renkan_guid' : 'bad-renkan-guid', 'revision_guid': self.test_initial_revision_guid})
    68         get_url = reverse("revision_detail", kwargs={"renkan_guid" : "bad-renkan-guid", "revision_guid": self.test_initial_revision_guid})
    56         get_response = self.client.get(get_url, {}, format='json')
    69         get_response = self.client.get(get_url, {}, format="json")
    57         self.assertEqual(get_response.status_code, status.HTTP_404_NOT_FOUND)
    70         self.assertEqual(get_response.status_code, status.HTTP_404_NOT_FOUND)
    58         
    71         
    59         ###################################################
    72         ###################################################
    60         # GETting with wrong revision guid
    73         # GETting with wrong revision guid
    61         ###################################################
    74         ###################################################
    62         
    75         
    63         get_url = reverse('revision_detail', kwargs={'renkan_guid' : self.test_renkan_guid, 'revision_guid': 'bad-revision-guid'})
    76         get_url = reverse("revision_detail", kwargs={"renkan_guid" : self.test_renkan_guid, "revision_guid": "bad-revision-guid"})
    64         get_response = self.client.get(get_url, {}, format='json')
    77         get_response = self.client.get(get_url, {}, format="json")
    65         self.assertEqual(get_response.status_code, status.HTTP_404_NOT_FOUND)
    78         self.assertEqual(get_response.status_code, status.HTTP_404_NOT_FOUND)
    66         
    79         
    67         ###################################################
    80         ###################################################
    68         # try GETting with unauthorized user 
    81         # try GETting with unauthorized user 
    69         ###################################################
    82         ###################################################
    70         
    83         
    71         _ = self.client.login(username='blip', password='blip')
    84         _ = self.client.login(username="blip", password="blip")
    72         get_url = reverse('revision_detail', kwargs={'renkan_guid' : self.test_renkan_guid, 'revision_guid': self.test_initial_revision_guid})
    85         get_url = reverse("revision_detail", kwargs={"renkan_guid" : self.test_renkan_guid, "revision_guid": self.test_initial_revision_guid})
    73         get_response = self.client.get(get_url, {}, format='json')
    86         get_response = self.client.get(get_url, {}, format="json")
    74         self.assertEqual(get_response.status_code, status.HTTP_403_FORBIDDEN)
    87         self.assertEqual(get_response.status_code, status.HTTP_403_FORBIDDEN)
    75         
    88         
    76     def test_get_revision_list(self):
    89     def test_get_revision_list(self):
    77         
    90         
    78         ###################################################
    91         ###################################################
    79         # PUTting another revision in test renkan
    92         # PUTting another revision in test renkan
    80         ###################################################
    93         ###################################################
    81         
    94         
    82         put_url = reverse('renkan_detail', kwargs={'renkan_guid' : self.test_renkan_guid})
    95         put_url = reverse("renkan_detail", kwargs={"renkan_guid" : self.test_renkan_guid})
    83         put_title = 'edited_title'
    96         put_title = "edited_title"
    84         put_content = json.dumps({"title": "edited_title", "nodes": 1})
       
    85         put_data = {
    97         put_data = {
    86             'title' : put_title,
    98             "title" : put_title,
    87             'content' : put_content,
    99             "create_new_revision": True
    88             'create_new_revision': True
       
    89         }
   100         }
    90         put_response = self.client.put(put_url, put_data, format='json')
   101         put_response = self.client.put(put_url, put_data, format="json")
    91         
   102         
    92         ###################################################
   103         ###################################################
    93         # GETting revision lists
   104         # GETting revision lists
    94         ###################################################
   105         ###################################################
    95         
   106         
    96         get_url = reverse('revision_list', kwargs={'renkan_guid' : self.test_renkan_guid})
   107         get_url = reverse("revision_list", kwargs={"renkan_guid" : self.test_renkan_guid})
    97         get_response = self.client.get(get_url, {}, format='json')
   108         get_response = self.client.get(get_url, {}, format="json")
    98         self.assertEqual(get_response.status_code, status.HTTP_200_OK)
   109         self.assertEqual(get_response.status_code, status.HTTP_200_OK)
    99         
   110         
   100         # Checking data
   111         # Checking data
   101         get_response_content = json.loads(get_response.content) # Should be a list
   112         get_response_content = json.loads(get_response.content.decode()) # Should be a list
   102         self.assertTrue(isinstance(get_response_content, list))
   113         self.assertTrue(isinstance(get_response_content, list))
   103         self.assertEqual(len(get_response_content), 2)
   114         self.assertEqual(len(get_response_content), 2)
   104         
   115         
   105         ###################################################
   116         ###################################################
   106         # GETting with wrong renkan guid
   117         # GETting with wrong renkan guid
   107         ###################################################
   118         ###################################################
   108         
   119         
   109         _ = self.client.login(username='blip', password='blip')
   120         _ = self.client.login(username="blip", password="blip")
   110         get_url = reverse('revision_detail', kwargs={'renkan_guid' : self.test_renkan_guid, 'revision_guid': self.test_initial_revision_guid})
   121         get_url = reverse("revision_detail", kwargs={"renkan_guid" : self.test_renkan_guid, "revision_guid": self.test_initial_revision_guid})
   111         get_response = self.client.get(get_url, {}, format='json')
   122         get_response = self.client.get(get_url, {}, format="json")
   112         self.assertEqual(get_response.status_code, status.HTTP_403_FORBIDDEN)
   123         self.assertEqual(get_response.status_code, status.HTTP_403_FORBIDDEN)
   113     
   124     
   114     def test_delete_revision(self):
   125     def test_delete_revision(self):
   115         
   126         
   116         ###################################################
   127         ###################################################
   117         # Try to DELETE the initial revision (last revision, should 400)
   128         # Try to DELETE the initial revision (last revision, should 400)
   118         ###################################################
   129         ###################################################
   119         delete_url = reverse('revision_detail', kwargs={'renkan_guid' : self.test_renkan_guid, 'revision_guid': self.test_initial_revision_guid})
   130         delete_url = reverse("revision_detail", kwargs={"renkan_guid" : self.test_renkan_guid, "revision_guid": self.test_initial_revision_guid})
   120         delete_response = self.client.delete(delete_url, {}, format='json')
   131         delete_response = self.client.delete(delete_url, {}, format="json")
   121         self.assertEqual(delete_response.status_code, status.HTTP_400_BAD_REQUEST)
   132         self.assertEqual(delete_response.status_code, status.HTTP_400_BAD_REQUEST)
   122         
   133         
   123         ###################################################
   134         ###################################################
   124         # PUTting another revision in test renkan
   135         # PUTting another revision in test renkan
   125         ###################################################
   136         ###################################################
   126         
   137         
   127         put_url = reverse('renkan_detail', kwargs={'renkan_guid' : self.test_renkan_guid})
   138         put_url = reverse("renkan_detail", kwargs={"renkan_guid" : self.test_renkan_guid})
   128         put_title = 'edited_title'
   139         put_title = "edited_title"
   129         put_content = json.dumps({"title": "edited_title", "nodes": 1})
       
   130         put_data = {
   140         put_data = {
   131             'title' : put_title,
   141             "title" : put_title,
   132             'content' : put_content,
   142             "create_new_revision": True
   133             'create_new_revision': True
       
   134         }
   143         }
   135         put_response = self.client.put(put_url, put_data, format='json')
   144         put_response = self.client.put(put_url, put_data, format="json")
   136         put_response_dict = json.loads(put_response.content)
   145         put_response_dict = json.loads(put_response.content.decode())
   137         added_revision_guid = put_response_dict.get('current_revision_guid', '')
   146         added_revision_guid = put_response_dict.get("current_revision_guid", "")
   138         
   147         
   139         ###################################################
   148         ###################################################
   140         # Try to DELETE the added revision (current revision, should 400)
   149         # Try to DELETE the added revision (current revision, should 400)
   141         ###################################################
   150         ###################################################
   142         
   151         
   143         delete_url = reverse('revision_detail', kwargs={'renkan_guid' : self.test_renkan_guid, 'revision_guid': added_revision_guid})
   152         delete_url = reverse("revision_detail", kwargs={"renkan_guid" : self.test_renkan_guid, "revision_guid": added_revision_guid})
   144         delete_response = self.client.delete(delete_url, {}, format='json')
   153         delete_response = self.client.delete(delete_url, {}, format="json")
   145         self.assertEqual(delete_response.status_code, status.HTTP_400_BAD_REQUEST)
   154         self.assertEqual(delete_response.status_code, status.HTTP_400_BAD_REQUEST)
   146         
   155         
   147         
   156         
   148         ###################################################
   157         ###################################################
   149         # try to DELETE with unauthorized user 
   158         # try to DELETE with unauthorized user 
   150         ###################################################
   159         ###################################################
   151         
   160         
   152         _ = self.client.login(username='blip', password='blip')
   161         _ = self.client.login(username="blip", password="blip")
   153         delete_url = reverse('revision_detail', kwargs={'renkan_guid' : self.test_renkan_guid, 'revision_guid': self.test_initial_revision_guid})
   162         delete_url = reverse("revision_detail", kwargs={"renkan_guid" : self.test_renkan_guid, "revision_guid": self.test_initial_revision_guid})
   154         delete_response = self.client.delete(delete_url, {}, format='json')
   163         delete_response = self.client.delete(delete_url, {}, format="json")
   155         self.assertEqual(delete_response.status_code, status.HTTP_403_FORBIDDEN)
   164         self.assertEqual(delete_response.status_code, status.HTTP_403_FORBIDDEN)
   156         
   165         
   157         # Restoring rightful user
   166         # Restoring rightful user
   158         _ = self.client.login(username='blop', password='blop')
   167         _ = self.client.login(username="blop", password="blop")
   159         
   168         
   160         ###################################################
   169         ###################################################
   161         # Try to DELETE the initial revision (should 204 now that we added a revision)
   170         # Try to DELETE the initial revision (should 204 now that we added a revision)
   162         ###################################################
   171         ###################################################
   163         
   172         
   164         delete_url = reverse('revision_detail', kwargs={'renkan_guid' : self.test_renkan_guid, 'revision_guid': self.test_initial_revision_guid})
   173         delete_url = reverse("revision_detail", kwargs={"renkan_guid" : self.test_renkan_guid, "revision_guid": self.test_initial_revision_guid})
   165         delete_response = self.client.delete(delete_url, {}, format='json')
   174         delete_response = self.client.delete(delete_url, {}, format="json")
   166         self.assertEqual(delete_response.status_code, status.HTTP_204_NO_CONTENT)
   175         self.assertEqual(delete_response.status_code, status.HTTP_204_NO_CONTENT)
   167         
   176         
   168         ###################################################
   177         ###################################################
   169         # Try to DELETE with wrong renkan guid
   178         # Try to DELETE with wrong renkan guid
   170         ###################################################
   179         ###################################################
   171         
   180         
   172         delete_url = reverse('revision_detail', kwargs={'renkan_guid' : 'bad-renkan-guid', 'revision_guid': self.test_initial_revision_guid})
   181         delete_url = reverse("revision_detail", kwargs={"renkan_guid" : "bad-renkan-guid", "revision_guid": self.test_initial_revision_guid})
   173         delete_response = self.client.delete(delete_url, {}, format='json')
   182         delete_response = self.client.delete(delete_url, {}, format="json")
   174         self.assertEqual(delete_response.status_code, status.HTTP_404_NOT_FOUND)
   183         self.assertEqual(delete_response.status_code, status.HTTP_404_NOT_FOUND)
   175         
   184         
   176         ###################################################
   185         ###################################################
   177         # Try to DELETE with wrong revision guid
   186         # Try to DELETE with wrong revision guid
   178         ###################################################
   187         ###################################################
   179         
   188         
   180         delete_url = reverse('revision_detail', kwargs={'renkan_guid' : self.test_renkan_guid, 'revision_guid': 'bad-revision-guid'})
   189         delete_url = reverse("revision_detail", kwargs={"renkan_guid" : self.test_renkan_guid, "revision_guid": "bad-revision-guid"})
   181         delete_response = self.client.delete(delete_url, {}, format='json')
   190         delete_response = self.client.delete(delete_url, {}, format="json")
   182         self.assertEqual(delete_response.status_code, status.HTTP_404_NOT_FOUND)
   191         self.assertEqual(delete_response.status_code, status.HTTP_404_NOT_FOUND)