diff --git a/tests/unit/encoders/test_bedrock.py b/tests/unit/encoders/test_bedrock.py index 1a9cf8353ca8687bda6c05b9eec43bd0ed07904c..619325ed0ac43e7f54cf7eacd14a68a21a22ee8f 100644 --- a/tests/unit/encoders/test_bedrock.py +++ b/tests/unit/encoders/test_bedrock.py @@ -86,6 +86,22 @@ class TestBedrockEncoder: bedrock_encoder.access_key_id == "env_id" ), "Access key ID not set correctly from environment variable" + def test_missing_access_key_id(self, mocker): + mocker.patch( + "semantic_router.encoders.bedrock.BedrockEncoder._initialize_client" + ) + + with pytest.raises(ValueError): + BedrockEncoder(access_key_id=None, secret_access_key="fake_secret") + + def test_missing_secret_access_key(self, mocker): + mocker.patch( + "semantic_router.encoders.bedrock.BedrockEncoder._initialize_client" + ) + + with pytest.raises(ValueError): + BedrockEncoder(access_key_id="fake_id", secret_access_key=None) + def test_initialisation_missing_env_variables(self, mocker): mocker.patch.dict(os.environ, {}, clear=True) with pytest.raises(ValueError): @@ -96,6 +112,17 @@ class TestBedrockEncoder: region=None, ) + def test_failed_client_initialisation(self, mocker): + mocker.patch.dict(os.environ, clear=True) + + mocker.patch( + "semantic_router.encoders.bedrock.BedrockEncoder._initialize_client", + side_effect=Exception("Initialization failed"), + ) + + with pytest.raises(ValueError): + BedrockEncoder(access_key_id="fake_id", secret_access_key="fake_secret") + def test_call_method(self, bedrock_encoder): response_content = json.dumps({"embedding": [0.1, 0.2, 0.3]}) response_body = BytesIO(response_content.encode("utf-8")) @@ -182,6 +209,18 @@ class TestBedrockEncoder: with pytest.raises(ValueError): BedrockEncoder.get_env_variable("MISSING_VAR", None) + def test_uninitialised_client(self, bedrock_encoder): + bedrock_encoder.client = None + + with pytest.raises(ValueError): + bedrock_encoder(["test"]) + + def test_missing_env_variables(self, mocker): + mocker.patch.dict(os.environ, clear=True) + + with pytest.raises(ValueError): + BedrockEncoder() + class TestBedrockEncoderWithCohere: def test_cohere_embedding_single_chunk(self, bedrock_encoder_with_cohere):