def test_registration(self):
     """Tests user registration"""
     response = self.client.post(
         url_for('api.register'),
         headers=create_api_headers('rikky_dyke', 'password'),
         data=json.dumps({'username': '******', 'password': '******'}))
     self.assertEquals(response.status_code, 201)
 def test_registration_refuses_blank_username(self):
     """Tests that blank usernames are rejected"""
     response = self.client.post(
         url_for('api.register'),
         headers=create_api_headers('rikky_dyke', 'password'),
         data=json.dumps({'username': '', 'password': '******'}))
     self.assertEquals(response.status_code, 400)
 def test_login_invalid_user(self):
     """Testst that login function rejects invalid users"""
     response = self.client.post(
         url_for('api.login'),
         headers=create_api_headers('rikky_dyke', 'password'),
         data=json.dumps({'username': '******', 'password': '******'}))
     self.assertEquals(response.status_code, 401)
예제 #4
0
 def test_that_invalid_routes_return_json(self):
     response = self.client.get('auth/bucketlists/',
                                headers=create_api_headers(
                                    'rikky_dyke', 'password'))
     data = json.loads(response.get_data(as_text=True))
     self.assertEquals(response.status_code, 404)
     self.assertEquals(data['message'], '404: Not Found')
 def test_that_invalid_routes_return_json(self):
     response = self.client.get(
         'auth/bucketlists/',
         headers=create_api_headers('rikky_dyke', 'password'))
     data = json.loads(response.get_data(as_text=True))
     self.assertEquals(response.status_code, 404)
     self.assertEquals(data['message'], '404: Not Found')
예제 #6
0
 def test_get_bucketlists_with_max_limit(self):
     token = self.get_token()
     response = self.client.get(
         url_for('api.get_bucketlists'), query_string={'limit': '200'},
         headers=create_api_headers(token, ''))
     data = json.loads(response.get_data(as_text=True))
     self.assertEquals(response.status_code, 200)
     self.assertEquals(data['meta']['limit'], 100)
예제 #7
0
 def test_get_bucketlists_with_search(self):
     token = self.get_token()
     response = self.client.get(
         url_for('api.get_bucketlists'), query_string={'q': 'bucket'},
         headers=create_api_headers(token, ''))
     data = json.loads(response.get_data(as_text=True))
     self.assertEquals(response.status_code, 200)
     self.assertEquals(data['bucketlists'][0]['name'], 'Bucketlist_A')
 def test_login(self):
     """Tests that login works"""
     response = self.client.post(
         url_for('api.login'),
         headers=create_api_headers('rikky_dyke', 'password'),
         data=json.dumps({'username': '******',
                          'password': '******'}))
     self.assertEquals(response.status_code, 200)
예제 #9
0
 def test_delete_only_works_for_items_with_appropriate_bucketlist_id(self):
     token = self.get_token()
     response = self.client.delete(
         url_for('api.delete_bucketlist_item', id=1, item_id=3),
         headers=create_api_headers(token, ''))
     data = json.loads(response.get_data(as_text=True))
     self.assertEquals(response.status_code, 403)
     self.assertEquals(data['error'], 'forbidden')
예제 #10
0
 def test_delete_bucketlist_item(self):
     token = self.get_token()
     response = self.client.delete(
         url_for('api.delete_bucketlist_item', id=1, item_id=1),
         headers=create_api_headers(token, ''))
     data = json.loads(response.get_data(as_text=True))
     self.assertEquals(response.status_code, 200)
     self.assertEquals(data['result'], 'Successful')
예제 #11
0
 def test_only_item_belonging_to_a_bucketlist_id_can_be_viewed(self):
     token = self.get_token()
     response = self.client.get(
         url_for('api.get_bucketlist_item', id=1, item_id=3),
         headers=create_api_headers(token, ''))
     data = json.loads(response.get_data(as_text=True))
     self.assertEquals(response.status_code, 403)
     self.assertEquals(data['error'], 'forbidden')
 def test_registration_of_non_unique_usernames(self):
     """Tests that api rejects usernames that are already taken"""
     response = self.client.post(
         url_for('api.register'),
         headers=create_api_headers('rikky_dyke', 'password'),
         data=json.dumps({'username': '******',
                          'password': '******'}))
     self.assertEquals(response.status_code, 400)
예제 #13
0
 def test_get_bucketlist_item(self):
     token = self.get_token()
     response = self.client.get(
         url_for('api.get_bucketlist_item', id=1, item_id=1),
         headers=create_api_headers(token, ''))
     data = json.loads(response.get_data(as_text=True))
     self.assertEquals(response.status_code, 200)
     self.assertEquals(data['name'], self.bucketlist_item_name)
예제 #14
0
 def test_user_cannot_delete_anothers_bucketlist_item(self):
     token = self.get_token()
     response = self.client.delete(
         url_for('api.delete_bucketlist_item', id=2, item_id=2),
         headers=create_api_headers(token, ''))
     data = json.loads(response.get_data(as_text=True))
     self.assertEquals(response.status_code, 403)
     self.assertEquals(data['error'], 'forbidden')
예제 #15
0
 def test_user_would_only_get_bucketlists_owned(self):
     token = self.get_token()
     response = self.client.get(
         url_for('api.get_bucketlists'),
         headers=create_api_headers(token, ''))
     data = json.loads(response.get_data(as_text=True))
     print data
     self.assertEquals(len(data['bucketlists']), 2)
     self.assertEquals(data['bucketlists'][0]['created_by'], 'rikky_dyke')
예제 #16
0
 def get_token(self):
     """Calls the login function and returns the token generated"""
     response = self.client.post(
         url_for('api.login'),
         headers=create_api_headers('rikky_dyke', 'password'),
         data=json.dumps({'username': '******',
                          'password': '******'}))
     token = json.loads(response.data)['Token']
     return token
예제 #17
0
 def test_that_api_throws_error_if_keyword_name_not_provided(self):
     token = self.get_token()
     response = self.client.post(
         url_for('api.create_bucketlist'),
         headers=create_api_headers(token, ''),
         data=json.dumps({'raziel': self.bucketlist3_name}))
     data = json.loads(response.get_data(as_text=True))
     self.assertEquals(response.status_code, 400)
     self.assertEquals(data['error'], 'bad request')
예제 #18
0
 def test_edit_bucketlist_items_done_attribute(self):
     token = self.get_token()
     response = self.client.put(
         url_for('api.edit_bucketlist_item', id=1, item_id=1),
         headers=create_api_headers(token, ''),
         data=json.dumps({'done': 'True'}))
     data = json.loads(response.get_data(as_text=True))
     self.assertEquals(response.status_code, 200)
     self.assertEquals(data['done'], True)
예제 #19
0
 def test_edit_bucketlist_item(self):
     token = self.get_token()
     response = self.client.put(
         url_for('api.edit_bucketlist_item', id=1, item_id=1),
         headers=create_api_headers(token, ''),
         data=json.dumps({'name': 'Reach a state of balance'}))
     data = json.loads(response.get_data(as_text=True))
     self.assertEquals(response.status_code, 200)
     self.assertEquals(data['name'], 'Reach a state of balance')
예제 #20
0
 def test_create_bucketlist_item(self):
     token = self.get_token()
     response = self.client.post(
         url_for('api.create_bucketlist_item', id=1),
         headers=create_api_headers(token, ''),
         data=json.dumps({'name': self.bucketlist_item3_name}))
     data = json.loads(response.get_data(as_text=True))
     self.assertEquals(response.status_code, 201)
     self.assertEquals(data['name'], self.bucketlist_item3_name)
 def test_registration_refuses_short_password(self):
     """
     Tests that passwords that are shorter than 6 characters are rejected
     """
     response = self.client.post(
         url_for('api.register'),
         headers=create_api_headers('rikky_dyke', 'password'),
         data=json.dumps({'username': '******', 'password': '******'}))
     self.assertEquals(response.status_code, 400)
예제 #22
0
 def test_user_cannot_create_item_in_anothers_bucketlist(self):
     token = self.get_token()
     response = self.client.post(
         url_for('api.create_bucketlist_item', id=2),
         headers=create_api_headers(token, ''),
         data=json.dumps({'name': self.bucketlist_item3_name}))
     data = json.loads(response.get_data(as_text=True))
     self.assertEquals(response.status_code, 403)
     self.assertEquals(data['error'], 'forbidden')
예제 #23
0
 def test_create_bucketlist_item_fails_on_invalid_argument(self):
     token = self.get_token()
     response = self.client.post(
         url_for('api.create_bucketlist_item', id=1),
         headers=create_api_headers(token, ''),
         data=json.dumps({'nemesis': self.bucketlist_item3_name}))
     data = json.loads(response.get_data(as_text=True))
     self.assertEquals(response.status_code, 400)
     self.assertEquals(data['error'], 'bad request')
예제 #24
0
 def test_edit_only_works_for_items_with_appropriate_bucketlist_id(self):
     token = self.get_token()
     response = self.client.put(
         url_for('api.edit_bucketlist_item', id=1, item_id=3),
         headers=create_api_headers(token, ''),
         data=json.dumps({'name': self.bucketlist3_name}))
     data = json.loads(response.get_data(as_text=True))
     self.assertEquals(response.status_code, 403)
     self.assertEquals(data['message'],
                      'You do not have permission to access this resource')
예제 #25
0
 def test_login(self):
     """Tests that login works"""
     response = self.client.post(url_for('api.login'),
                                 headers=create_api_headers(
                                     'rikky_dyke', 'password'),
                                 data=json.dumps({
                                     'username': '******',
                                     'password': '******'
                                 }))
     self.assertEquals(response.status_code, 200)
예제 #26
0
 def test_registration_of_non_unique_usernames(self):
     """Tests that api rejects usernames that are already taken"""
     response = self.client.post(url_for('api.register'),
                                 headers=create_api_headers(
                                     'rikky_dyke', 'password'),
                                 data=json.dumps({
                                     'username': '******',
                                     'password': '******'
                                 }))
     self.assertEquals(response.status_code, 400)
예제 #27
0
 def test_user_cannot_edit_anothers_bucketlist(self):
     token = self.get_token()
     response = self.client.put(
         url_for('api.edit_bucketlist', id=2),
         headers=create_api_headers(token, ''),
         data=json.dumps({'name': self.bucketlist3_name}))
     data = json.loads(response.get_data(as_text=True))
     self.assertEquals(response.status_code, 403)
     self.assertEquals(data['message'],
                       'You do not have permission to access this resource')
예제 #28
0
 def test_login_invalid_user(self):
     """Testst that login function rejects invalid users"""
     response = self.client.post(url_for('api.login'),
                                 headers=create_api_headers(
                                     'rikky_dyke', 'password'),
                                 data=json.dumps({
                                     'username': '******',
                                     'password': '******'
                                 }))
     self.assertEquals(response.status_code, 401)
예제 #29
0
 def test_registration_refuses_blank_username(self):
     """Tests that blank usernames are rejected"""
     response = self.client.post(url_for('api.register'),
                                 headers=create_api_headers(
                                     'rikky_dyke', 'password'),
                                 data=json.dumps({
                                     'username': '',
                                     'password': '******'
                                 }))
     self.assertEquals(response.status_code, 400)
예제 #30
0
 def test_registration(self):
     """Tests user registration"""
     response = self.client.post(url_for('api.register'),
                                 headers=create_api_headers(
                                     'rikky_dyke', 'password'),
                                 data=json.dumps({
                                     'username': '******',
                                     'password': '******'
                                 }))
     self.assertEquals(response.status_code, 201)
예제 #31
0
 def test_registration_refuses_short_password(self):
     """
     Tests that passwords that are shorter than 6 characters are rejected
     """
     response = self.client.post(url_for('api.register'),
                                 headers=create_api_headers(
                                     'rikky_dyke', 'password'),
                                 data=json.dumps({
                                     'username': '******',
                                     'password': '******'
                                 }))
     self.assertEquals(response.status_code, 400)
예제 #32
0
 def test_invalid_token_is_rejected(self):
     response = self.client.get(url_for('api.get_bucketlists'),
                                headers=create_api_headers('token', ''))
     self.assertEquals(response.status_code, 400)
예제 #33
0
 def test_get_non_existent_bucketlist(self):
     token = self.get_token()
     response = self.client.get(
         url_for('api.get_bucketlist', id=10),
         headers=create_api_headers(token, ''))
     self.assertEquals(response.status_code, 404)
예제 #34
0
 def test_get_user(self):
     response = self.client.get(url_for('api.get_user', id=1),
                                headers=create_api_headers(
                                    'rikky_dyke', 'password'))
     self.assertEquals(response.status_code, 200)
 def test_get_user(self):
     response = self.client.get(
         url_for('api.get_user', id=1),
         headers=create_api_headers('rikky_dyke', 'password'))
     self.assertEquals(response.status_code, 200)
예제 #36
0
 def test_user_cannot_access_bucketlist_of_another(self):
     token = self.get_token()
     response = self.client.get(
         url_for('api.get_bucketlist', id=2),
         headers=create_api_headers(token, ''))
     self.assertEquals(response.status_code, 403)
예제 #37
0
 def test_get_bucketlists(self):
     token = self.get_token()
     response = self.client.get(
         url_for('api.get_bucketlists'),
         headers=create_api_headers(token, ''))
     self.assertEquals(response.status_code, 200)
 def test_invalid_token_is_rejected(self):
     response = self.client.get(
         url_for('api.get_bucketlists'),
         headers=create_api_headers('token', ''))
     self.assertEquals(response.status_code, 400)