()
| 265 | |
| 266 | |
| 267 | def test_class_based_functions(): |
| 268 | context = RunContextWrapper(context="test") |
| 269 | |
| 270 | # Instance method |
| 271 | instance = MyClass() |
| 272 | func_schema = function_schema(instance.foo) |
| 273 | assert isinstance(func_schema.params_json_schema, dict) |
| 274 | assert func_schema.params_json_schema.get("title") == "foo_args" |
| 275 | |
| 276 | input = {"a": 1, "b": 2} |
| 277 | parsed = func_schema.params_pydantic_model(**input) |
| 278 | args, kwargs_dict = func_schema.to_call_args(parsed) |
| 279 | result = instance.foo(*args, **kwargs_dict) |
| 280 | assert result == 3 |
| 281 | |
| 282 | # Instance method with context |
| 283 | func_schema = function_schema(instance.foo_ctx) |
| 284 | assert isinstance(func_schema.params_json_schema, dict) |
| 285 | assert func_schema.params_json_schema.get("title") == "foo_ctx_args" |
| 286 | assert func_schema.takes_context |
| 287 | |
| 288 | input = {"a": 1, "b": 2} |
| 289 | parsed = func_schema.params_pydantic_model(**input) |
| 290 | args, kwargs_dict = func_schema.to_call_args(parsed) |
| 291 | result = instance.foo_ctx(context, *args, **kwargs_dict) |
| 292 | assert result == 3 |
| 293 | |
| 294 | # Class method |
| 295 | func_schema = function_schema(MyClass.bar) |
| 296 | assert isinstance(func_schema.params_json_schema, dict) |
| 297 | assert func_schema.params_json_schema.get("title") == "bar_args" |
| 298 | |
| 299 | input = {"a": 1, "b": 2} |
| 300 | parsed = func_schema.params_pydantic_model(**input) |
| 301 | args, kwargs_dict = func_schema.to_call_args(parsed) |
| 302 | result = MyClass.bar(*args, **kwargs_dict) |
| 303 | assert result == 3 |
| 304 | |
| 305 | # Class method with context |
| 306 | func_schema = function_schema(MyClass.bar_ctx) |
| 307 | assert isinstance(func_schema.params_json_schema, dict) |
| 308 | assert func_schema.params_json_schema.get("title") == "bar_ctx_args" |
| 309 | assert func_schema.takes_context |
| 310 | |
| 311 | input = {"a": 1, "b": 2} |
| 312 | parsed = func_schema.params_pydantic_model(**input) |
| 313 | args, kwargs_dict = func_schema.to_call_args(parsed) |
| 314 | result = MyClass.bar_ctx(context, *args, **kwargs_dict) |
| 315 | assert result == 3 |
| 316 | |
| 317 | # Static method |
| 318 | func_schema = function_schema(MyClass.baz) |
| 319 | assert isinstance(func_schema.params_json_schema, dict) |
| 320 | assert func_schema.params_json_schema.get("title") == "baz_args" |
| 321 | |
| 322 | input = {"a": 1, "b": 2} |
| 323 | parsed = func_schema.params_pydantic_model(**input) |
| 324 | args, kwargs_dict = func_schema.to_call_args(parsed) |
nothing calls this directly
no test coverage detected