def offer_fixture(client): ''' Generate three offers in the system. ''' offer_ids = [] for _ in range(3): offer = { 'title': fake.text(150), 'description': fake.text(250), 'category': fake.text(20), 'latitude': fake.latitude(), 'longitude': fake.longitude(), 'picture_url': fake.text(150), } header = token_validation.generate_token_header( fake.name(), PRIVATE_KEY) headers = { 'Authorization': header, } response = client.post('/api/me/offers/', data=offer, headers=headers) assert http.client.CREATED == response.status_code result = response.json offer_ids.append(result['id']) yield offer_ids # Clean up all offers response = client.get('/api/offers/') offers = response.json for offer in offers: offer_id = offer['id'] url = f'/admin/offers/{offer_id}/' response = client.delete(url) assert http.client.NO_CONTENT == response.status_code
def tweet_fixture(client): ''' Generate three tweets in the system. ''' tweet_ids = [] for _ in range(3): tweet = { 'text': fake.text(240), } header = token_validation.generate_token_header( fake.name(), PRIVATE_KEY) headers = { 'Authorization': header, } response = client.post('/api/me/tweets/', data=tweet, headers=headers) assert http.client.CREATED == response.status_code result = response.json tweet_ids.append(result['id']) yield tweet_ids # Clean up all tweets response = client.get('/api/tweets/') tweets = response.json for tweet in tweets: tweet_id = tweet['id'] url = f'/admin/tweets/{tweet_id}/' response = client.delete(url) assert http.client.NO_CONTENT == response.status_code
def test_delete_artist_by_admin(client): response, new_user = register_user(client) assert http.client.OK == response.status_code username = new_user['username'] response = activate_user(client, username) assert http.client.OK == response.status_code user = UserModel.query.filter_by(name=username).first() user_id = user.id response, new_artist = create_artist(client, username, user_id) result = response.json assert http.client.CREATED == response.status_code assert check_artist(new_artist, result) response = client.delete(f'/admin/artist/{user.artists[0].id}/') assert http.client.NO_CONTENT == response.status_code response = delete_user(client, new_user) assert http.client.NO_CONTENT == response.status_code
def area_fixture(client): ''' Generate three areas in the system. ''' area_ids = [] for _ in range(3): area = { 'areacode': fake.text(240), 'area': fake.text(240), 'zonecode': fake.text(240), } header = token_validation.generate_token_header( fake.name(), PRIVATE_KEY) headers = { 'Authorization': header, } response = client.post('/api/me/areas/', data=area, headers=headers) assert http.client.CREATED == response.status_code result = response.json area_ids.append(result['id']) yield area_ids # Clean up all areas response = client.get('/api/areas/') areas = response.json for area in areas: area_id = area['id'] url = f'/admin/areas/{area_id}/' response = client.delete(url) assert http.client.NO_CONTENT == response.status_code
def test_delete_product(client, product_fixture): product_id = product_fixture[0] url = f'/api/product/{product_id}' response = client.delete(url) assert http.client.NO_CONTENT == response.status_code # The product is gone response = client.get(url) assert http.client.NOT_FOUND == response.status_code
def test_delete_graph_requires_auth(self): with open(filepath('test-graph.json')) as f: graph_json = f.read() with self.client as client: id = 'places/us-states' res = client.put( '/graphs/%s' % id, data=graph_json, content_type='application/json', headers={'Authorization': 'Bearer ' + 'ZjdjNjQ1ODQtMDc1MC00Y2I2LThjODEtMjkzMmY1ZGFhYmI4'}) self.assertEqual(res.status_code, http.client.CREATED) res = client.delete('/graphs/%s' % id) self.assertEqual(res.status_code, http.client.UNAUTHORIZED)
def test_delete_user_by_admin(client): response, new_user = register_user(client) assert http.client.OK == response.status_code username = new_user['username'] response = activate_user(client, username) assert http.client.OK == response.status_code user = UserModel.query.filter_by(name=username).first() response = client.delete(f'/admin/auth/{user.id}/') assert http.client.NO_CONTENT == response.status_code
def test_delete_me_article_invalid_articleid(client, article_fixture): article_id = 1234455 user_payload = { 'userid': 2, 'username': '******', 'email': '*****@*****.**' } header = token_validation.generate_token_header(user_payload, PRIVATE_KEY) headers = { 'Authorization': header, } url = f'/api/me/article/{article_id}' response = client.delete(url, headers=headers) assert http.client.NOT_FOUND == response.status_code
def test_delete_graph(self): with open(filepath('test-graph.json')) as f: graph_json = f.read() with self.client as client: id = 'places/us-states' res = client.put( '/graphs/%s' % id, data=graph_json, content_type='application/json', headers={'Authorization': 'Bearer ' + 'ZjdjNjQ1ODQtMDc1MC00Y2I2LThjODEtMjkzMmY1ZGFhYmI4'}) self.assertEqual(res.status_code, http.client.CREATED) res = client.delete( '/graphs/%s' % id, buffered=True, headers={'Authorization': 'Bearer ' + 'ZjdjNjQ1ODQtMDc1MC00Y2I2LThjODEtMjkzMmY1ZGFhYmI4'}) self.assertEqual(res.status_code, http.client.NO_CONTENT) res = client.get('/graphs/%s' % id) self.assertEqual(res.status_code, http.client.NOT_FOUND) res = client.get('/graphs/%s?version=0' % id) self.assertEqual(res.status_code, http.client.OK) res = client.get('/graphs/') self.assertEqual(res.status_code, http.client.OK) data = json.loads(res.get_data(as_text=True)) self.assertEqual( {'http://localhost.localdomain:5000/d/'}, set(data['graphs'].keys())) res = client.put( '/graphs/%s' % id, data=graph_json, content_type='application/json', headers={'Authorization': 'Bearer ' + 'ZjdjNjQ1ODQtMDc1MC00Y2I2LThjODEtMjkzMmY1ZGFhYmI4'}) self.assertEqual(res.status_code, http.client.CREATED) graph_url_v1 = urlparse(res.headers['Location']) self.assertEqual('/graphs/%s' % id, graph_url_v1.path) self.assertEqual('version=1', graph_url_v1.query) res = client.get('/graphs/%s' % id) self.assertEqual(res.status_code, http.client.OK) res = client.get('/graphs/%s?version=0' % id) self.assertEqual(res.status_code, http.client.OK) res = client.get('/graphs/%s?version=1' % id) self.assertEqual(res.status_code, http.client.OK)
def test_delete_artist_song(client, album_fixture): username, user_id = get_user() headers = get_headers(username, user_id) response_new_album, new_album = create_test_album(client, username, user_id, headers) assert http.client.CREATED == response_new_album.status_code album_id = response_new_album.json['id'] response_new_song, new_song = create_test_song(client, username, user_id, album_id, headers) assert http.client.CREATED == response_new_song.status_code song_id = response_new_song.json['id'] response = client.delete(f'/api/artist/songs/{song_id}/', headers=headers) assert http.client.NO_CONTENT == response.status_code response = delete_test_album(client, album_id, headers) assert http.client.NO_CONTENT == response.status_code
def test_delete_album_by_admin(client): username, user_id = get_user() headers = get_headers(username, user_id) response, new_album = create_test_album(client, username, user_id, headers) result = response.json assert http.client.CREATED == response.status_code expected = { 'id': ANY, 'name': new_album['name'], 'price': new_album['price'], 'genre': new_album['genre'], 'date': ANY, 'description': new_album['description'], 'artist_name': username, 'artist_id': user_id, } assert result == expected response = client.delete(f'/admin/albums/{result["id"]}/') assert http.client.NO_CONTENT == response.status_code
def test_delete_artist_unauthorized(client): password = fake.password(length=15, special_chars=True) response = client.delete('/api/artist/', data={'password': password}) assert http.client.UNAUTHORIZED == response.status_code
async def delete(self, client: aiohttp.ClientSession, url: str) -> None: """Make a DELETE request to a URL.""" headers = self.auth_header() async with client.delete(url, headers=headers) as response: self.check_response(response)
def delete(key_id): client = datastore.Client() key = client.key('TodoList', int(key_id)) client.delete(key)
def test_delete_me_article_noheader(client, article_fixture): article_id = article_fixture[1] url = f'/api/me/article/{article_id}' response = client.delete(url) assert http.client.UNAUTHORIZED == response.status_code
def delete(key_id): client = datastore.Client() key = client.key('Greeting', int(key_id)) client.delete(key)
def album_fixture(client): """ Generate albums with songs in the system. """ album_qty = 3 songs_per_album = 2 artist_name = fake.first_name() artist_id = fake.pyint() album_ids = [] for i in range(album_qty): album = { 'name': fake.text(15), 'price': fake.pyint(), 'genre': fake.text(10), 'description': fake.text(128), 'artist_name': artist_name, 'artist_id': artist_id, } header = generate_token_header(artist_name, artist_id, PRIVATE_KEY) headers = { 'Authorization': header, } response = client.post('/api/artist/albums/', data=album, headers=headers) assert http.client.CREATED == response.status_code result = response.json album_ids.append({result['id']: []}) for _ in range(songs_per_album): song = { 'name': fake.text(15), 'album_id': result['id'], 'artist_name': artist_name, 'artist_id': artist_id, } header = generate_token_header(artist_name, artist_id, PRIVATE_KEY) headers = { 'Authorization': header, } response = client.post(f'/api/artist/albums/{result["id"]}/songs/', data=song, headers=headers) assert http.client.CREATED == response.status_code song_result = response.json album_ids[i][result['id']].append(song_result['id']) yield album_ids response = client.get('/api/albums/') albums = response.json for album in albums: album_id = album['id'] header = generate_token_header(artist_name, artist_id, PRIVATE_KEY) headers = { 'Authorization': header, } response = client.delete(f'/api/artist/albums/{album_id}/', headers=headers) assert http.client.NO_CONTENT == response.status_code
def test_delete_artist_song_unauthorized(client, album_fixture): song_id = get_song_id_from_fixture(album_fixture) response = client.delete(f'/api/artist/songs/{song_id}/') assert http.client.UNAUTHORIZED == response.status_code