コード例 #1
0
 def test_return_200_status_when_track_updated(self):
     device = create_device_with_owner(self.user)
     track = create_track_with_device(device)
     device2 = create_device_with_owner(self.user)
     response = self.client.put(
         '/devices/' + str(device.did) + '/tracks/' + str(track.tid) + '/',
         {
             "name": "new_name",
             "device": device2.did
         })
     self.assertEqual(HTTP_200_OK, response.status_code)
コード例 #2
0
 def test_return_200_status_when_get_track_is_done(self):
     device = create_device_with_owner(self.user)
     track = create_track_with_device(device)
     create_various_track_locations_with_track(track)
     response = self.client.get('/devices/' + str(device.did) + '/tracks/' +
                                str(track.tid) + '/')
     self.assertEqual(HTTP_200_OK, response.status_code)
コード例 #3
0
 def test_return_json_with_track_info_when_get_track_is_done(self):
     device = create_device_with_owner(self.user)
     track = create_track_with_device(device)
     create_various_track_locations_with_track(track)
     response = self.client.get('/devices/' + str(device.did) + '/tracks/' +
                                str(track.tid) + '/')
     self.assertEqual(TrackSerializer(track).data, response.data)
コード例 #4
0
 def test_return_400_status_when_json_body_is_invalid(self):
     device = create_device_with_owner(self.user)
     track = create_track_with_device(device)
     response = self.client.patch(
         '/devices/' + str(device.did) + '/tracks/' + str(track.tid) + '/',
         {"desc": "this attribute does not exist"})
     self.assertEqual(HTTP_400_BAD_REQUEST, response.status_code)
コード例 #5
0
 def test_return_200_status_when_track_updated(self):
     device = create_device_with_owner(self.user)
     track = create_track_with_device(device)
     response = self.client.patch(
         '/devices/' + str(device.did) + '/tracks/' + str(track.tid) + '/',
         {"description": "new description"})
     self.assertEqual(HTTP_200_OK, response.status_code)
コード例 #6
0
 def test_return_forbidden_status__when_request_user_is_not_owner(self):
     owner = create_user_with_email(email='*****@*****.**')
     device = create_device_with_owner(owner=owner)
     track = create_track_with_device(device=device)
     response = self.client.delete(path='/devices/' + str(device.did) +
                                   '/tracks/' + str(track.tid) + '/')
     self.assertEqual(response.status_code, HTTP_403_FORBIDDEN)
コード例 #7
0
 def test_return_json_with_instance_info_when_track_is_updated(self):
     device = create_device_with_owner(self.user)
     track = create_track_with_device(device)
     response = self.client.patch(
         '/devices/' + str(device.did) + '/tracks/' + str(track.tid) + '/',
         {"name": "new_name"})
     track_updated = Track.objects.get(pk=get_latest_id_inserted(Track))
     self.assertEqual(TrackSerializer(track_updated).data, response.data)
コード例 #8
0
 def test_return_403_status__when_owner_different_than_user_authenticated(
         self):
     owner = create_user_with_email(email='*****@*****.**')
     device = create_device_with_owner(owner=owner)
     response = self.client.get(path='/devices/' + str(device.did) +
                                '/actualLocation/',
                                format='json')
     self.assertEqual(response.status_code, HTTP_403_FORBIDDEN)
コード例 #9
0
 def test_return_201_status_when_track_location_created(self):
     device = create_device_with_owner(self.user)
     track = create_track_with_device(device)
     json_body = {'point': {'type': 'Point', 'coordinates': [90, 90]}}
     response = self.client.post(
         '/devices/' + str(device.did) + '/tracks/' + str(track.tid) +
         '/locations/', json_body)
     self.assertEqual(HTTP_201_CREATED, response.status_code)
コード例 #10
0
 def test_instance_updated_status_when_track_updated(self):
     device = create_device_with_owner(self.user)
     track = create_track_with_device(device)
     self.client.patch(
         '/devices/' + str(device.did) + '/tracks/' + str(track.tid) + '/',
         {"name": "new_name"})
     track_updated = Track.objects.get(pk=get_latest_id_inserted(Track))
     self.assertEqual("new_name", track_updated.name)
コード例 #11
0
 def test_return_403_status_when_user_has_not_permissions(self):
     owner = create_user_with_email('owner')
     device = create_device_with_owner(owner)
     track = create_track_with_device(device)
     response = self.client.patch(
         '/devices/' + str(device.did) + '/tracks/' + str(track.tid) + '/',
         {})
     self.assertEqual(HTTP_403_FORBIDDEN, response.status_code)
コード例 #12
0
 def test_return_no_content_status__when_delete_is_done(self):
     device = create_device_with_owner(owner=self.user)
     track = create_track_with_device(device=device)
     track_location = create_track_location_with_track(track=track)
     response = self.client.delete(
         path='/devices/' + str(device.did) + '/tracks/' + str(track.tid) +
         '/locations/' + str(track_location.id) + '/')
     self.assertEqual(response.status_code, HTTP_204_NO_CONTENT)
コード例 #13
0
 def test_instance_exists_when_track_is_created(self):
     device = create_device_with_owner(self.user)
     self.client.post('/devices/' + str(device.did) + '/tracks/', {
         "name": "test_track",
         "description": "this is a description"
     })
     track = Track.objects.get(pk=get_latest_id_inserted(Track))
     self.assertIsNotNone(track)
コード例 #14
0
 def test_return_201_status_when_track_is_created(self):
     device = create_device_with_owner(self.user)
     response = self.client.post('/devices/' + str(device.did) + '/tracks/',
                                 {
                                     "name": "test_track",
                                     "description": "this is a description"
                                 })
     self.assertEqual(HTTP_201_CREATED, response.status_code)
コード例 #15
0
 def test_return_json_with_instance_info_when_track_is_created(self):
     device = create_device_with_owner(self.user)
     response = self.client.post('/devices/' + str(device.did) + '/tracks/',
                                 {
                                     "name": "test_track",
                                     "description": "this is a description"
                                 })
     track_created = Track.objects.get(pk=get_latest_id_inserted(Track))
     self.assertEqual(TrackSerializer(track_created).data, response.data)
コード例 #16
0
 def test_instance_exists_status_when_track_location_created(self):
     device = create_device_with_owner(self.user)
     track = create_track_with_device(device)
     json_body = {'point': {'type': 'Point', 'coordinates': [90, 90]}}
     self.client.post(
         '/devices/' + str(device.did) + '/tracks/' + str(track.tid) +
         '/locations/', json_body)
     track_location = self._get_track_location_by_id(
         get_latest_id_inserted(TrackLocation))
     self.assertIsNotNone(track_location)
コード例 #17
0
 def test_return_method_error_message_when_try_to_change_instance_representation(
         self):
     device = create_device_with_owner(self.user)
     track = create_track_with_device(device)
     response = self.client.patch(
         '/devices/' + str(device.did) + '/tracks/' + str(track.tid) + '/',
         {"device": device.did})
     self.assertEqual(
         {'non_field_errors': [DEFAULT_ERROR_MESSAGES['invalid_patch']]},
         response.data)
コード例 #18
0
 def test_return_json_with_instance_info_status_when_track_location_created(
         self):
     device = create_device_with_owner(self.user)
     track = create_track_with_device(device)
     json_body = {'point': {'type': 'Point', 'coordinates': [90, 90]}}
     response = self.client.post(
         '/devices/' + str(device.did) + '/tracks/' + str(track.tid) +
         '/locations/', json_body)
     expected_json = TrackLocationSerializer(
         self._get_track_location_by_id(
             get_latest_id_inserted(TrackLocation))).data
     self.assertEqual(expected_json, response.data)
コード例 #19
0
 def test_return_invalid_longitude_error_when_body_has_invalid_longitude(
         self):
     device = create_device_with_owner(self.user)
     track = create_track_with_device(device)
     json_body = {'point': {'type': 'Point', 'coordinates': [1, 181]}}
     response = self.client.post(
         '/devices/' + str(device.did) + '/tracks/' + str(track.tid) +
         '/locations/', json_body)
     expected_json = {
         'non_field_errors': [DEFAULT_ERROR_MESSAGES['invalid_longitude']]
     }
     self.assertEqual(expected_json, response.data)
コード例 #20
0
 def test_return_404_status_when_track_not_exists(self):
     device = create_device_with_owner(self.user)
     response = self.client.patch(
         '/devices/' + str(device.did) + '/tracks/100/', {})
     self.assertEqual(HTTP_404_NOT_FOUND, response.status_code)
コード例 #21
0
 def setUp(self):
     self.client = APIClient()
     self.user = create_user_with_email(email='*****@*****.**')
     self.token = generate_token_for_user(user=self.user)
     self.device = create_device_with_owner(owner=self.user)
     self.client.credentials(HTTP_AUTHORIZATION='JWT ' + self.token)
コード例 #22
0
 def test_return_400_status_when_json_body_is_invalid(self):
     device = create_device_with_owner(self.user)
     response = self.client.post('/devices/' + str(device.did) + '/tracks/',
                                 {"description": "name missing"})
     self.assertEqual(HTTP_400_BAD_REQUEST, response.status_code)
コード例 #23
0
 def test_return_404_when_device_not_exists(self):
     device = create_device_with_owner(self.user)
     track = create_track_with_device(device)
     response = self.client.post(
         '/devices/100/tracks/' + str(track.tid) + '/locations/', {})
     self.assertEqual(HTTP_404_NOT_FOUND, response.status_code)