Spaces:
Sleeping
Sleeping
| 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 | |
| ) | |
| def test_parametrized_class_parameters(obj, expected): | |
| assert print_class_parameters(obj, api_format=True) == expected | |
| 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. | |