============================= test session starts ==============================
platform darwin -- Python 3.13.2, pytest-9.0.2, pluggy-1.6.0 -- /Users/eric.wilson/Projects/geek-cafe/geek-cafe-saas-sdk/.venv/bin/python
cachedir: .pytest_cache
metadata: {'Python': '3.13.2', 'Platform': 'macOS-26.4.1-arm64-arm-64bit-Mach-O', 'Packages': {'pytest': '9.0.2', 'pluggy': '1.6.0'}, 'Plugins': {'metadata': '3.1.1', 'html': '4.2.0', 'hypothesis': '6.151.9', 'cov': '7.0.0'}}
hypothesis profile 'default'
rootdir: /Users/eric.wilson/Projects/geek-cafe/geek-cafe-saas-sdk
configfile: pyproject.toml
plugins: metadata-3.1.1, html-4.2.0, hypothesis-6.151.9, cov-7.0.0
collecting ... collected 68 items

tests/test_tenancy_handlers.py::TestLambdaEventBodyRegression::test_event_body_returns_dict PASSED [  1%]
tests/test_tenancy_handlers.py::TestLambdaEventBodyRegression::test_event_body_empty PASSED [  2%]
tests/test_tenancy_handlers.py::TestLambdaEventBodyRegression::test_event_body_is_not_method_reference PASSED [  4%]
tests/test_tenancy_handlers.py::TestCreateTenantHandler::test_create_tenant_handler PASSED [  5%]
tests/test_tenancy_handlers.py::TestCreateTenantHandler::test_create_tenant_handler_with_envelope PASSED [  7%]
tests/test_tenancy_handlers.py::TestCreateTenantHandler::test_create_tenant_full_ui_payload_denied_for_regular_user PASSED [  8%]
tests/test_tenancy_handlers.py::TestCreateTenantHandler::test_create_tenant_full_ui_payload_with_provisioning_context PASSED [ 10%]
tests/test_tenancy_handlers.py::TestCreateTenantHandler::test_create_tenant_handler_missing_name PASSED [ 11%]
tests/test_tenancy_handlers.py::TestCreateTenantHandler::test_create_tenant_handler_no_type_error PASSED [ 13%]
tests/test_tenancy_handlers.py::TestUpdateTenantHandler::test_update_tenant_handler_success PASSED [ 14%]
tests/test_tenancy_handlers.py::TestUpdateTenantHandler::test_update_tenant_handler_no_type_error PASSED [ 16%]
tests/test_tenancy_handlers.py::TestUpdateTenantHandler::test_update_tenant_handler_missing_path_id PASSED [ 17%]
tests/test_tenancy_handlers.py::TestCreateSubscriptionHandler::test_create_subscription_handler PASSED [ 19%]
tests/test_tenancy_handlers.py::TestCreateSubscriptionHandler::test_create_subscription_handler_no_type_error PASSED [ 20%]
tests/test_tenancy_handlers.py::TestActivateSubscriptionHandler::test_activate_subscription_handler PASSED [ 22%]
tests/test_tenancy_handlers.py::TestActivateSubscriptionHandler::test_activate_subscription_handler_no_type_error PASSED [ 23%]
tests/test_tenancy_handlers.py::TestUpdateSubscriptionHandler::test_update_subscription_handler_success PASSED [ 25%]
tests/test_tenancy_handlers.py::TestUpdateSubscriptionHandler::test_update_subscription_handler_no_type_error PASSED [ 26%]
tests/test_tenancy_handlers.py::TestUpdateSubscriptionHandler::test_update_subscription_handler_missing_path_id PASSED [ 27%]
tests/test_tenant_list_bug_condition.py::TestListAllBugCondition::test_list_all_does_not_raise_name_error PASSED [ 29%]
tests/test_tenant_list_bug_condition.py::TestListByStatusExceptionHandlerBugCondition::test_list_by_status_exception_handler_does_not_raise_name_error PASSED [ 30%]
tests/test_tenant_list_bug_condition.py::TestListAllPropertyBased::test_list_all_no_name_error_for_any_limit PASSED [ 32%]
tests/test_tenant_list_preservation.py::TestListByStatusSuccessPathPreservation::test_list_by_status_queries_gsi1_with_correct_params PASSED [ 33%]
tests/test_tenant_list_preservation.py::TestListByStatusSuccessPathPreservation::test_list_by_status_filters_deleted_tenants PASSED [ 35%]
tests/test_tenant_list_preservation.py::TestListByStatusSuccessPathPreservation::test_list_by_status_returns_empty_on_no_results PASSED [ 36%]
tests/test_tenant_list_preservation.py::TestListByStatusSuccessPathPreservation::test_list_by_status_propagates_query_failure PASSED [ 38%]
tests/test_tenant_list_preservation.py::TestHandleServiceExceptionPreservation::test_get_by_id_exception_handler_passes_valid_kwargs PASSED [ 39%]
tests/test_tenant_list_preservation.py::TestHandleServiceExceptionPreservation::test_deactivate_exception_handler_passes_valid_kwargs PASSED [ 41%]
tests/test_tenant_list_preservation.py::TestHandleServiceExceptionPreservation::test_activate_exception_handler_passes_valid_kwargs PASSED [ 42%]
tests/test_tenant_list_preservation.py::TestHandleServiceExceptionPreservation::test_delete_exception_handler_passes_valid_kwargs PASSED [ 44%]
tests/test_tenant_list_preservation.py::TestLambdaHandlerCallPatternPreservation::test_list_all_accepts_limit_keyword_argument FAILED [ 45%]
tests/test_tenant_list_preservation.py::TestLambdaHandlerCallPatternPreservation::test_list_by_status_signature_accepts_status_and_limit PASSED [ 47%]
tests/test_tenant_service.py::TestTenantModel::test_tenant_creation PASSED [ 48%]
tests/test_tenant_service.py::TestTenantModel::test_tenant_status_validation PASSED [ 50%]
tests/test_tenant_service.py::TestTenantModel::test_tenant_features PASSED [ 51%]
tests/test_tenant_service.py::TestTenantModel::test_tenant_user_limits PASSED [ 52%]
tests/test_tenant_service.py::TestTenantModel::test_tenant_status_helpers PASSED [ 54%]
tests/test_tenant_service.py::TestTenantServiceCreate::test_create_tenant_success PASSED [ 55%]
tests/test_tenant_service.py::TestTenantServiceCreate::test_create_tenant_missing_name PASSED [ 57%]
tests/test_tenant_service.py::TestTenantServiceCreate::test_create_with_user_success PASSED [ 58%]
tests/test_tenant_service.py::TestTenantServiceCreate::test_create_with_user_auto_tenant_name PASSED [ 60%]
tests/test_tenant_service.py::TestTenantServiceCreate::test_create_with_user_default_features PASSED [ 61%]
tests/test_tenant_service.py::TestTenantServiceRead::test_get_by_id_success PASSED [ 63%]
tests/test_tenant_service.py::TestTenantServiceRead::test_get_by_id_invalid_id_not_found PASSED [ 64%]
tests/test_tenant_service.py::TestTenantServiceRead::test_get_by_id_wrong_tenant PASSED [ 66%]
tests/test_tenant_service.py::TestTenantServiceUpdate::test_update_tenant_success PASSED [ 67%]
tests/test_tenant_service.py::TestTenantServiceUpdate::test_activate_deactivate PASSED [ 69%]
tests/test_tenant_service.py::TestTenantServiceUserManagement::test_get_user_count PASSED [ 70%]
tests/test_tenant_service.py::TestTenantServiceUserManagement::test_can_add_user_unlimited PASSED [ 72%]
tests/test_tenant_service.py::TestTenantServiceUserManagement::test_can_add_user_with_limit PASSED [ 73%]
tests/modules/tenancy/handlers/tenants/list/test_list_tenants_pagination.py::TestStartKeyDecoding::test_no_start_key_passes_none_to_service PASSED [ 75%]
tests/modules/tenancy/handlers/tenants/list/test_list_tenants_pagination.py::TestStartKeyDecoding::test_valid_base64_start_key_decoded_and_passed_to_service PASSED [ 76%]
tests/modules/tenancy/handlers/tenants/list/test_list_tenants_pagination.py::TestStartKeyDecoding::test_invalid_base64_returns_http_400 PASSED [ 77%]
tests/modules/tenancy/handlers/tenants/list/test_list_tenants_pagination.py::TestStartKeyDecoding::test_valid_base64_of_non_json_returns_http_400 PASSED [ 79%]
tests/modules/tenancy/handlers/tenants/list/test_list_tenants_pagination.py::TestLimitParameter::test_no_limit_defaults_to_50 PASSED [ 80%]
tests/modules/tenancy/handlers/tenants/list/test_list_tenants_pagination.py::TestLimitParameter::test_custom_limit_passed_through PASSED [ 82%]
tests/modules/tenancy/handlers/tenants/list/test_list_tenants_pagination.py::TestNextKeyEncoding::test_service_returns_last_evaluated_key_response_has_encoded_next_key PASSED [ 83%]
tests/modules/tenancy/handlers/tenants/list/test_list_tenants_pagination.py::TestNextKeyEncoding::test_service_returns_no_last_evaluated_key_response_has_null_next_key PASSED [ 85%]
tests/modules/tenancy/handlers/tenants/list/test_list_tenants_pagination.py::TestResponseEnvelope::test_response_has_correct_structure PASSED [ 86%]
tests/modules/tenancy/handlers/tenants/list/test_list_tenants_pagination.py::TestResponseEnvelope::test_empty_tenant_list_response PASSED [ 88%]
tests/modules/tenancy/handlers/tenants/list/test_list_tenants_pagination.py::TestServiceDelegation::test_status_provided_calls_list_by_status PASSED [ 89%]
tests/modules/tenancy/handlers/tenants/list/test_list_tenants_pagination.py::TestServiceDelegation::test_no_status_calls_list_all PASSED [ 91%]
tests/modules/tenancy/services/test_tenant_service_pagination.py::TestListByStatusPagination::test_passes_start_key_to_query_by_index_when_provided PASSED [ 92%]
tests/modules/tenancy/services/test_tenant_service_pagination.py::TestListByStatusPagination::test_passes_start_key_none_when_not_provided PASSED [ 94%]
tests/modules/tenancy/services/test_tenant_service_pagination.py::TestListByStatusPagination::test_propagates_last_evaluated_key_to_service_result PASSED [ 95%]
tests/modules/tenancy/services/test_tenant_service_pagination.py::TestListByStatusPagination::test_no_metadata_when_last_evaluated_key_absent PASSED [ 97%]
tests/modules/tenancy/services/test_tenant_service_pagination.py::TestListAllPagination::test_passes_start_key_to_query_by_index_when_provided PASSED [ 98%]
tests/modules/tenancy/services/test_tenant_service_pagination.py::TestListAllPagination::test_propagates_last_evaluated_key_from_list_all PASSED [100%]

=================================== FAILURES ===================================
_ TestLambdaHandlerCallPatternPreservation.test_list_all_accepts_limit_keyword_argument _

self = <tests.test_tenant_list_preservation.TestLambdaHandlerCallPatternPreservation object at 0x10a9a8910>

    def test_list_all_accepts_limit_keyword_argument(self):
        """
        **Validates: Requirements 3.3**
    
        The Lambda handler calls service.list_all(limit=limit).
        Verify list_all's signature accepts 'limit' as a keyword argument.
        """
        sig = inspect.signature(TenantService.list_all)
        params = sig.parameters
    
        # list_all must accept 'limit' parameter
        assert "limit" in params, (
            f"list_all signature missing 'limit' parameter. "
            f"Params: {list(params.keys())}"
        )
    
        # 'limit' should have a default value (500)
        limit_param = params["limit"]
>       assert limit_param.default == 500, (
            f"Expected limit default=500, got {limit_param.default}"
        )
E       AssertionError: Expected limit default=500, got 50
E       assert 50 == 500
E        +  where 50 = <Parameter "limit: int = 50">.default

tests/test_tenant_list_preservation.py:328: AssertionError
=============================== warnings summary ===============================
tests/test_tenancy_handlers.py: 15 warnings
tests/test_tenant_service.py: 9 warnings
tests/modules/tenancy/services/test_tenant_service_pagination.py: 6 warnings
  /Users/eric.wilson/Projects/geek-cafe/geek-cafe-saas-sdk/tests/conftest.py:264: DeprecationWarning: create_test_context is deprecated, use create_user_context instead
    return AnonymousContextFactory.create_test_context(

tests/test_tenant_service.py::TestTenantServiceRead::test_get_by_id_wrong_tenant
tests/test_tenant_service.py::TestTenantServiceRead::test_get_by_id_wrong_tenant
  /Users/eric.wilson/Projects/geek-cafe/geek-cafe-saas-sdk/tests/test_tenant_service.py:43: DeprecationWarning: create_test_context is deprecated, use create_user_context instead
    context = AnonymousContextFactory.create_test_context(

tests/test_tenant_service.py::TestTenantServiceUserManagement::test_get_user_count
tests/test_tenant_service.py::TestTenantServiceUserManagement::test_can_add_user_with_limit
  /Users/eric.wilson/Projects/geek-cafe/geek-cafe-saas-sdk/tests/test_tenant_service.py:71: DeprecationWarning: create_test_context is deprecated, use create_user_context instead
    admin_context = AnonymousContextFactory.create_test_context(

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_tenant_list_preservation.py::TestLambdaHandlerCallPatternPreservation::test_list_all_accepts_limit_keyword_argument
================== 1 failed, 67 passed, 34 warnings in 4.01s ===================
