parent
918dd41a38
commit
eb18d416e4
@ -1,120 +0,0 @@
|
|||||||
import pytest
|
|
||||||
|
|
||||||
from swarms.utils import print_class_parameters
|
|
||||||
|
|
||||||
|
|
||||||
class TestObject:
|
|
||||||
def __init__(self, value1, value2: int):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
class TestObject2:
|
|
||||||
def __init__(self: "TestObject2", value1, value2: int = 5):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def test_class_with_complex_parameters():
|
|
||||||
class ComplexArgs:
|
|
||||||
def __init__(self, value1: list, value2: dict = {}):
|
|
||||||
pass
|
|
||||||
|
|
||||||
output = {"value1": "<class 'list'>", "value2": "<class 'dict'>"}
|
|
||||||
assert (
|
|
||||||
print_class_parameters(ComplexArgs, api_format=True) == output
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def test_empty_class():
|
|
||||||
class Empty:
|
|
||||||
pass
|
|
||||||
|
|
||||||
with pytest.raises(Exception):
|
|
||||||
print_class_parameters(Empty)
|
|
||||||
|
|
||||||
|
|
||||||
def test_class_with_no_annotations():
|
|
||||||
class NoAnnotations:
|
|
||||||
def __init__(self, value1, value2):
|
|
||||||
pass
|
|
||||||
|
|
||||||
output = {
|
|
||||||
"value1": "<class 'inspect._empty'>",
|
|
||||||
"value2": "<class 'inspect._empty'>",
|
|
||||||
}
|
|
||||||
assert (
|
|
||||||
print_class_parameters(NoAnnotations, api_format=True)
|
|
||||||
== output
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def test_class_with_partial_annotations():
|
|
||||||
class PartialAnnotations:
|
|
||||||
def __init__(self, value1, value2: int):
|
|
||||||
pass
|
|
||||||
|
|
||||||
output = {
|
|
||||||
"value1": "<class 'inspect._empty'>",
|
|
||||||
"value2": "<class 'int'>",
|
|
||||||
}
|
|
||||||
assert (
|
|
||||||
print_class_parameters(PartialAnnotations, api_format=True)
|
|
||||||
== output
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"obj, expected",
|
|
||||||
[
|
|
||||||
(
|
|
||||||
TestObject,
|
|
||||||
{
|
|
||||||
"value1": "<class 'inspect._empty'>",
|
|
||||||
"value2": "<class 'int'>",
|
|
||||||
},
|
|
||||||
),
|
|
||||||
(
|
|
||||||
TestObject2,
|
|
||||||
{
|
|
||||||
"value1": "<class 'inspect._empty'>",
|
|
||||||
"value2": "<class 'int'>",
|
|
||||||
},
|
|
||||||
),
|
|
||||||
],
|
|
||||||
)
|
|
||||||
def test_parametrized_class_parameters(obj, expected):
|
|
||||||
assert print_class_parameters(obj, api_format=True) == expected
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
|
||||||
"value",
|
|
||||||
[
|
|
||||||
int,
|
|
||||||
float,
|
|
||||||
str,
|
|
||||||
list,
|
|
||||||
set,
|
|
||||||
dict,
|
|
||||||
bool,
|
|
||||||
tuple,
|
|
||||||
complex,
|
|
||||||
bytes,
|
|
||||||
bytearray,
|
|
||||||
memoryview,
|
|
||||||
range,
|
|
||||||
frozenset,
|
|
||||||
slice,
|
|
||||||
object,
|
|
||||||
],
|
|
||||||
)
|
|
||||||
def test_not_class_exception(value):
|
|
||||||
with pytest.raises(Exception):
|
|
||||||
print_class_parameters(value)
|
|
||||||
|
|
||||||
|
|
||||||
def test_api_format_flag():
|
|
||||||
assert print_class_parameters(TestObject2, api_format=True) == {
|
|
||||||
"value1": "<class 'inspect._empty'>",
|
|
||||||
"value2": "<class 'int'>",
|
|
||||||
}
|
|
||||||
print_class_parameters(TestObject)
|
|
||||||
# TODO: Capture printed output and assert correctness.
|
|
Loading…
Reference in new issue