You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
2.7 KiB
Python

import requests
import urllib.parse
from typing import List
import json
# DB Schema Version 2.0 | 2021-10-10
test_artist_entries = [
{"id": None, "name": "Artist1", "topics": []},
{"id": None, "name": "Artist2", "topics": []},
{"id": None, "name": "Artist3", "topics": []}
]
def list_artists(url: str, port: int):
"""
Return a list of all artist known to the database
:param url:
:param port:
:return:
"""
r = requests.get(f"http://{url}:{port}/artnet/metadata/artist")
if r.status_code != 200:
print(r.text)
raise Exception("Failed querying for artists!")
artists = json.loads(r.text)
return artists
def create_artist_entries(url: str, port: int):
for i in range(len(test_artist_entries)):
r = create_artist(url, port, test_artist_entries[i]["name"], test_artist_entries[i]["topics"])
if r.status_code != 200:
print(f"Status:{r.status_code} Text:{r.text}")
raise Exception("Artist Entry creation failed!")
artist_id = int(r.text)
test_artist_entries[i]["id"] = artist_id
def delete_artist_entries(url: str, port: int):
artists = list_artists(url, port)
for i in range(len(artists)):
r = delete_artist(url, port, artists[i]["id"])
if r.status_code != 200:
print(f"Deleted artist entry #{artists[i]['id']}, {artists[i]['name']}: FAILURE")
else:
print(f"Deleted artist entry #{artists[i]['id']}, {artists[i]['name']}: SUCCESS")
def create_artist(url: str, port: int, name: str, topics: List[int]):
r = requests.post(f"http://{url}:{port}/artnet/metadata/artist",
json={"name": name, "topics": topics})
return r
def delete_artist(url: str, port: int, id: int):
r = requests.delete(f"http://{url}:{port}/artnet/metadata/artist?id={urllib.parse.quote(str(id))}")
return r
def run_artist_test(url: str, port: int):
print()
print("----------------")
print(f"Starting the artist test with ({len(list_artists(url, port))}) artists!")
print("Starting the artist test ...")
print(f"Creating {len(test_artist_entries)} artists ...")
create_artist_entries(url, port)
print(f"Found {len(list_artists(url, port))} artist entries")
create_artist_result = False if not len(list_artists(url, port)) == 3 else True
print("Deleting all artists ...")
delete_artist_entries(url, port)
delete_artist_result = False if not len(list_artists(url, port)) == 0 else True
print(f"Found {len(list_artists(url, port))} artist entries")
print("Completed the artist test!")
print("----------------")
print()
return create_artist_result, delete_artist_result