158 lines
4.7 KiB
Python
158 lines
4.7 KiB
Python
from __future__ import print_function
|
|
|
|
import logging
|
|
import time
|
|
|
|
import requests
|
|
|
|
import config as config
|
|
from utils.api import Api
|
|
|
|
logger = logging.getLogger(__name__)
|
|
dataset = {}
|
|
|
|
|
|
class TestCropDatasetE2E:
|
|
def setup_class(self):
|
|
self.api = Api(config)
|
|
self.api.feat_oas_schema()
|
|
|
|
@classmethod
|
|
def teardown_class(self):
|
|
pass
|
|
|
|
def test_0_clear_all_datasets(self):
|
|
headers = {
|
|
"x-api-key": config.api_key,
|
|
"username": config.username,
|
|
}
|
|
|
|
resp = self.api.list_datasets(headers=headers)
|
|
assert resp.status_code == 200, resp.dumps()
|
|
assert 'datasets' in resp.json()['data'], resp.dumps()
|
|
datasets = resp.json()['data']['datasets']
|
|
for dataset in datasets:
|
|
data = {
|
|
"dataset_name_list": [
|
|
dataset['datasetName'],
|
|
],
|
|
}
|
|
resp = self.api.delete_datasets(data=data, headers=headers)
|
|
assert resp.status_code == 204, resp.dumps()
|
|
|
|
def test_1_dataset_post(self):
|
|
dataset_content = []
|
|
|
|
for i in range(1, 5):
|
|
filename = f"{i}.png"
|
|
dataset_content.append({
|
|
'filename': filename,
|
|
'name': filename,
|
|
'type': 'image',
|
|
'params': {}
|
|
})
|
|
|
|
headers = {
|
|
"x-api-key": config.api_key,
|
|
"username": config.username,
|
|
}
|
|
|
|
data = {
|
|
'dataset_name': config.dataset_name,
|
|
'content': dataset_content,
|
|
'creator': config.username,
|
|
'prefix': '10_technic',
|
|
'params': {'description': 'this is description'}
|
|
}
|
|
|
|
resp = self.api.create_dataset(headers=headers, data=data)
|
|
assert resp.status_code == 201, resp.dumps()
|
|
|
|
global dataset
|
|
dataset = resp.json()
|
|
|
|
assert resp.json()["statusCode"] == 201
|
|
assert resp.json()['data']["datasetName"] == config.dataset_name
|
|
|
|
def test_2_dataset_img_upload(self):
|
|
global dataset
|
|
for filename, presign_url in dataset['data']['s3PresignUrl'].items():
|
|
with open("./data/dataset_koyha/10_technic/42166.png", 'rb') as file:
|
|
resp = requests.put(presign_url, file)
|
|
resp.raise_for_status()
|
|
assert resp.status_code == 200
|
|
|
|
def test_3_dataset_update_status(self):
|
|
global dataset
|
|
headers = {
|
|
"x-api-key": config.api_key,
|
|
"username": config.username,
|
|
}
|
|
|
|
data = {
|
|
"status": "Enabled"
|
|
}
|
|
|
|
resp = self.api.update_dataset(dataset_id=config.dataset_name, headers=headers, data=data)
|
|
assert resp.status_code == 200, resp.dumps()
|
|
|
|
assert resp.json()["statusCode"] == 200
|
|
|
|
def test_4_datasets_get(self):
|
|
headers = {
|
|
"x-api-key": config.api_key,
|
|
"username": config.username,
|
|
}
|
|
|
|
resp = self.api.list_datasets(headers=headers)
|
|
assert resp.status_code == 200, resp.dumps()
|
|
|
|
datasets = resp.json()['data']["datasets"]
|
|
|
|
assert config.dataset_name in [user["datasetName"] for user in datasets]
|
|
|
|
def test_5_datasets_crop(self):
|
|
headers = {
|
|
"x-api-key": config.api_key,
|
|
"username": config.username,
|
|
}
|
|
|
|
resp = self.api.list_datasets(headers=headers)
|
|
assert resp.status_code == 200, resp.dumps()
|
|
|
|
datasets = resp.json()['data']["datasets"]
|
|
|
|
for dataset in datasets:
|
|
dataset_name = dataset['datasetName']
|
|
data = {
|
|
"max_resolution": "512x512"
|
|
}
|
|
resp = self.api.crop_dataset(headers=headers, dataset_id=dataset_name, data=data)
|
|
assert resp.status_code == 202, resp.dumps()
|
|
|
|
time.sleep(5)
|
|
resp = self.api.list_datasets(headers=headers)
|
|
assert resp.status_code == 200, resp.dumps()
|
|
|
|
datasets = resp.json()['data']["datasets"]
|
|
assert f"{dataset_name}_512x512" in [user["datasetName"] for user in datasets]
|
|
|
|
def test_6_clear_all_datasets(self):
|
|
headers = {
|
|
"x-api-key": config.api_key,
|
|
"username": config.username,
|
|
}
|
|
|
|
resp = self.api.list_datasets(headers=headers)
|
|
assert resp.status_code == 200, resp.dumps()
|
|
assert 'datasets' in resp.json()['data'], resp.dumps()
|
|
datasets = resp.json()['data']['datasets']
|
|
for dataset in datasets:
|
|
data = {
|
|
"dataset_name_list": [
|
|
dataset['datasetName'],
|
|
],
|
|
}
|
|
resp = self.api.delete_datasets(data=data, headers=headers)
|
|
assert resp.status_code == 204, resp.dumps()
|