#[ cfg( feature = "retry" ) ]
#[ tokio::test ]
async fn test_client_with_retry_configuration()
{
use api_openai::
{
Client,
environment ::{ OpenaiEnvironmentImpl, OpenAIRecommended },
secret ::Secret,
enhanced_retry ::EnhancedRetryConfig,
};
let retry_config = EnhancedRetryConfig::new()
.with_max_attempts( 2 )
.with_base_delay( 10 ) .with_max_delay( 100 )
.with_jitter( 5 );
let secret = Secret::new( "sk-test-key-for-retry-testing".to_string() ).expect( "Secret creation should succeed" );
let env = OpenaiEnvironmentImpl::build(
secret,
None,
None,
OpenAIRecommended::base_url().to_string(),
OpenAIRecommended::realtime_base_url().to_string()
).expect( "Environment creation should succeed" );
let client = Client::build( env )
.expect( "Client creation should succeed" )
.with_retry_config( retry_config.clone() );
assert!( client.retry_config().is_some() );
let client_config = client.retry_config().unwrap();
assert_eq!( client_config.max_attempts, 2 );
assert_eq!( client_config.base_delay_ms, 10 );
}
#[ cfg( feature = "retry" ) ]
#[ tokio::test ]
async fn test_client_with_default_retry()
{
use api_openai::
{
Client,
environment ::{ OpenaiEnvironmentImpl, OpenAIRecommended },
secret ::Secret,
};
let secret = Secret::new( "sk-test-key-for-retry-testing".to_string() ).expect( "Secret creation should succeed" );
let env = OpenaiEnvironmentImpl::build(
secret,
None,
None,
OpenAIRecommended::base_url().to_string(),
OpenAIRecommended::realtime_base_url().to_string()
).expect( "Environment creation should succeed" );
let client = Client::build( env )
.expect( "Client creation should succeed" )
.with_retry();
assert!( client.retry_config().is_some() );
let client_config = client.retry_config().unwrap();
assert_eq!( client_config.max_attempts, 3 ); assert_eq!( client_config.base_delay_ms, 1000 ); }
#[ cfg( not( feature = "retry" ) ) ]
#[ tokio::test ]
async fn test_client_without_retry_feature()
{
use api_openai::
{
Client,
environment ::{ OpenaiEnvironmentImpl, OpenAIRecommended },
secret ::Secret,
};
let secret = Secret::new( "sk-test-key-for-retry-testing".to_string() ).expect( "Secret creation should succeed" );
let env = OpenaiEnvironmentImpl::build(
secret,
None,
None,
OpenAIRecommended::base_url().to_string(),
OpenAIRecommended::realtime_base_url().to_string()
).expect( "Environment creation should succeed" );
let client = Client::build( env )
.expect( "Client creation should succeed" );
assert!( client.retry_config().is_none() );
}