@@ -493,3 +493,80 @@ async def fake_stream():
493
493
mock_client .converse_stream .assert_called_once_with (param2 = "value2" )
494
494
495
495
mock_session .create_client .assert_called_once_with ("bedrock-runtime" )
496
+
497
+
498
+ @patch ("mirascope.core.bedrock._utils._setup_call.Session" )
499
+ @patch ("mirascope.core.bedrock._utils._setup_call.get_session" )
500
+ @patch ("mirascope.core.bedrock._utils._setup_call._utils" , new_callable = MagicMock )
501
+ def test_setup_call_env_vars (
502
+ mock_utils : MagicMock ,
503
+ mock_get_session : MagicMock ,
504
+ mock_session_class : MagicMock ,
505
+ mock_base_setup_call : MagicMock ,
506
+ monkeypatch : pytest .MonkeyPatch ,
507
+ ) -> None :
508
+ """Test that environment variables are properly passed to Session and get_session."""
509
+ mock_utils .setup_call = mock_base_setup_call
510
+ mock_base_setup_call .return_value [1 ] = [
511
+ {"role" : "user" , "content" : [{"text" : "user test" }]},
512
+ ]
513
+ mock_base_setup_call .return_value [3 ] = {}
514
+
515
+ # Set environment variables
516
+ monkeypatch .setenv ("AWS_ACCESS_KEY_ID" , "test_access_key" )
517
+ monkeypatch .setenv ("AWS_SECRET_ACCESS_KEY" , "test_secret_key" )
518
+ monkeypatch .setenv ("AWS_SESSION_TOKEN" , "test_session_token" )
519
+ monkeypatch .setenv ("AWS_REGION_NAME" , "us-west-2" )
520
+ monkeypatch .setenv ("AWS_PROFILE" , "test_profile" )
521
+
522
+ # Test sync client creation with env vars
523
+ setup_call (
524
+ model = "anthropic.claude-v2" ,
525
+ client = None ,
526
+ fn = MagicMock (),
527
+ fn_args = {},
528
+ dynamic_config = None ,
529
+ tools = None ,
530
+ json_mode = False ,
531
+ call_params = {},
532
+ response_model = None ,
533
+ stream = False ,
534
+ )
535
+
536
+ # Verify Session was called with expected env vars
537
+ mock_session_class .assert_called_once_with (
538
+ aws_access_key_id = "test_access_key" ,
539
+ aws_secret_access_key = "test_secret_key" ,
540
+ aws_session_token = "test_session_token" ,
541
+ region_name = "us-west-2" ,
542
+ profile_name = "test_profile" ,
543
+ )
544
+
545
+ # Test async client creation with env vars
546
+ async def async_fn (): ...
547
+
548
+ mock_session_class .reset_mock ()
549
+
550
+ setup_call (
551
+ model = "anthropic.claude-v2" ,
552
+ client = None ,
553
+ fn = async_fn ,
554
+ fn_args = {},
555
+ dynamic_config = None ,
556
+ tools = None ,
557
+ json_mode = False ,
558
+ call_params = {},
559
+ response_model = None ,
560
+ stream = False ,
561
+ )
562
+
563
+ # Verify get_session was called with expected env vars
564
+ mock_get_session .assert_called_with (
565
+ env_vars = {
566
+ "aws_access_key_id" : "test_access_key" ,
567
+ "aws_secret_access_key" : "test_secret_key" ,
568
+ "aws_session_token" : "test_session_token" ,
569
+ "region_name" : "us-west-2" ,
570
+ "profile_name" : "test_profile" ,
571
+ }
572
+ )
0 commit comments