* bump Signed-off-by: Jess Frazelle <github@jessfraz.com> * some fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * YOYO NEW API SPEC! * reformat Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixups Signed-off-by: Jess Frazelle <github@jessfraz.com> * for now force true Signed-off-by: Jess Frazelle <github@jessfraz.com> * run the tests on generations Signed-off-by: Jess Frazelle <github@jessfraz.com> * add tests Signed-off-by: Jess Frazelle <github@jessfraz.com> * update Signed-off-by: Jess Frazelle <github@jessfraz.com> * update Signed-off-by: Jess Frazelle <github@jessfraz.com> * update Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * update Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix some types Signed-off-by: Jess Frazelle <github@jessfraz.com> * float to top Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix mypy Signed-off-by: Jess Frazelle <github@jessfraz.com> * more noqa Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixups Signed-off-by: Jess Frazelle <github@jessfraz.com> * ruff pass Signed-off-by: Jess Frazelle <github@jessfraz.com> * add docs Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * even less mypy errors Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * add test Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixups Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * cleanup Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix Signed-off-by: Jess Frazelle <github@jessfraz.com> * new path Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes for mypy Signed-off-by: Jess Frazelle <github@jessfraz.com> * skip tests Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
216 lines
4.6 KiB
Python
216 lines
4.6 KiB
Python
import os
|
|
|
|
import pytest
|
|
|
|
from .api.api_tokens import list_api_tokens_for_user
|
|
from .api.file import (
|
|
create_file_conversion_with_base64_helper,
|
|
create_file_mass,
|
|
create_file_volume,
|
|
)
|
|
from .api.meta import ping
|
|
from .api.users import get_user_self, list_users_extended
|
|
from .client import ClientFromEnv
|
|
from .models import (
|
|
ApiCallStatus,
|
|
ApiTokenResultsPage,
|
|
CreatedAtSortMode,
|
|
ExtendedUserResultsPage,
|
|
FileConversion,
|
|
FileExportFormat,
|
|
FileImportFormat,
|
|
FileMass,
|
|
FileVolume,
|
|
Pong,
|
|
User,
|
|
)
|
|
|
|
|
|
def test_get_session():
|
|
# Create our client.
|
|
client = ClientFromEnv()
|
|
|
|
# Get the session.
|
|
session: User = get_user_self.sync(client=client)
|
|
|
|
assert session is not None
|
|
|
|
print(f"Session: {session}")
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_get_api_tokens_async():
|
|
# Create our client.
|
|
client = ClientFromEnv()
|
|
|
|
# List API tokens.
|
|
fc: ApiTokenResultsPage = list_api_tokens_for_user.sync(
|
|
client=client, sort_by=CreatedAtSortMode
|
|
)
|
|
|
|
assert fc is not None
|
|
|
|
print(f"fc: {fc}")
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_get_session_async():
|
|
# Create our client.
|
|
client = ClientFromEnv()
|
|
|
|
# Get the session.
|
|
session: User = await get_user_self.asyncio(client=client)
|
|
|
|
assert session is not None
|
|
|
|
print(f"Session: {session}")
|
|
|
|
|
|
def test_ping():
|
|
# Create our client.
|
|
client = ClientFromEnv()
|
|
|
|
# Get the message.
|
|
message: Pong = ping.sync(client=client)
|
|
|
|
assert message is not None
|
|
|
|
print(f"Message: {message}")
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_ping_async():
|
|
# Create our client.
|
|
client = ClientFromEnv()
|
|
|
|
# Get the message.
|
|
message: Pong = await ping.asyncio(client=client)
|
|
|
|
assert message is not None
|
|
|
|
print(f"Message: {message}")
|
|
|
|
|
|
def test_file_convert_stl():
|
|
# Create our client.
|
|
client = ClientFromEnv()
|
|
|
|
dir_path = os.path.dirname(os.path.realpath(__file__))
|
|
file = open(os.path.join(dir_path, "../assets/testing.stl"), "rb")
|
|
content = file.read()
|
|
file.close()
|
|
|
|
# Get the fc.
|
|
fc: FileConversion = create_file_conversion_with_base64_helper.sync(
|
|
client=client,
|
|
body=content,
|
|
src_format=FileImportFormat.STL,
|
|
output_format=FileExportFormat.OBJ,
|
|
)
|
|
|
|
assert fc is not None
|
|
|
|
print(f"FileConversion: {fc}")
|
|
|
|
assert fc.id is not None
|
|
|
|
assert fc.status == ApiCallStatus.COMPLETED
|
|
|
|
print(f"FileConversion: {fc}")
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_file_convert_stl_async():
|
|
# Create our client.
|
|
client = ClientFromEnv()
|
|
|
|
dir_path = os.path.dirname(os.path.realpath(__file__))
|
|
file = open(os.path.join(dir_path, "../assets/testing.stl"), "rb")
|
|
content = file.read()
|
|
file.close()
|
|
|
|
# Get the fc.
|
|
fc: FileConversion = await create_file_conversion_with_base64_helper.asyncio(
|
|
client=client,
|
|
body=content,
|
|
src_format=FileImportFormat.STL,
|
|
output_format=FileExportFormat.OBJ,
|
|
)
|
|
|
|
assert fc is not None
|
|
|
|
print(f"FileConversion: {fc}")
|
|
|
|
assert fc.id is not None
|
|
|
|
print(f"FileConversion: {fc}")
|
|
|
|
|
|
def test_file_mass():
|
|
# Create our client.
|
|
client = ClientFromEnv()
|
|
|
|
dir_path = os.path.dirname(os.path.realpath(__file__))
|
|
file = open(os.path.join(dir_path, "../assets/testing.obj"), "rb")
|
|
content = file.read()
|
|
file.close()
|
|
|
|
# Get the fc.
|
|
fm: FileMass = create_file_mass.sync(
|
|
client=client,
|
|
body=content,
|
|
src_format=FileImportFormat.OBJ,
|
|
material_density=1.0,
|
|
)
|
|
|
|
assert fm is not None
|
|
|
|
print(f"FileMass: {fm}")
|
|
|
|
assert fm.id is not None
|
|
assert fm.mass is not None
|
|
|
|
assert fm.to_dict() is not None
|
|
|
|
assert fm.status == ApiCallStatus.COMPLETED
|
|
|
|
|
|
def test_file_volume():
|
|
# Create our client.
|
|
client = ClientFromEnv()
|
|
|
|
dir_path = os.path.dirname(os.path.realpath(__file__))
|
|
file = open(os.path.join(dir_path, "../assets/testing.obj"), "rb")
|
|
content = file.read()
|
|
file.close()
|
|
|
|
# Get the fc.
|
|
fv: FileVolume = create_file_volume.sync(
|
|
client=client, body=content, src_format=FileImportFormat.OBJ
|
|
)
|
|
|
|
assert fv is not None
|
|
|
|
print(f"FileVolume: {fv}")
|
|
|
|
assert fv.id is not None
|
|
assert fv.volume is not None
|
|
|
|
assert fv.to_dict() is not None
|
|
|
|
assert fv.status == ApiCallStatus.COMPLETED
|
|
|
|
|
|
def test_list_users():
|
|
# Create our client.
|
|
client = ClientFromEnv()
|
|
|
|
response: ExtendedUserResultsPage = list_users_extended.sync(
|
|
sort_by=CreatedAtSortMode.CREATED_AT_DESCENDING, client=client, limit=10
|
|
)
|
|
|
|
print(f"ExtendedUserResultsPage: {response}")
|
|
|
|
assert response is not None
|
|
assert response.items is not None
|