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)
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')
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)
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)
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')
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')
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)
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)
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')
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')
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
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')
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)
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')
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)
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')
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')
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')
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)
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)
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')
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)
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_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_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)
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)
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)
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)
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)
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)