예제 #1
0
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
예제 #2
0
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
예제 #3
0
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
예제 #4
0
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
예제 #6
0
 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)
예제 #7
0
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
예제 #8
0
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
예제 #9
0
 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)
예제 #10
0
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
예제 #11
0
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
예제 #12
0
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
예제 #13
0
 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)
예제 #14
0
파일: ds.py 프로젝트: hama28/Portfolio
def delete(key_id):
    client = datastore.Client()
    key = client.key('TodoList', int(key_id))
    client.delete(key)
예제 #15
0
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
예제 #16
0
파일: ds.py 프로젝트: hama28/gae-study
def delete(key_id):
    client = datastore.Client()
    key = client.key('Greeting', int(key_id))
    client.delete(key)
예제 #17
0
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
예제 #18
0
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