@@ -48,14 +48,14 @@ def test_authenticate_bk_token(self, mock_request, mocker):
4848 )
4949 @mock .patch ("requests.Session.request" )
5050 def test_authenticate_bk_token_for_tenant_mode (self , mock_request , mocker ):
51+ """Test basic fields validation for tenant mode authentication"""
5152 mock_request .return_value = mock_raw_response (
5253 {
5354 "data" : {
5455 "bk_username" : "5461b239-5ef2-4c81-a682-5907dbd5f394" ,
5556 "tenant_id" : "system" ,
5657 "display_name" : "foo" ,
5758 "language" : "zh-cn" ,
58- "time_zone" : "Asia/Shanghai" ,
5959 }
6060 }
6161 )
@@ -71,6 +71,45 @@ def test_authenticate_bk_token_for_tenant_mode(self, mock_request, mocker):
7171 assert getattr (user , "display_name" ) == "foo"
7272 assert getattr (user , "tenant_id" ) == "system"
7373
74+ @override_settings (
75+ BKAUTH_ENABLE_MULTI_TENANT_MODE = True ,
76+ BKAUTH_BACKEND_TYPE = "bk_token" ,
77+ BKAUTH_USER_INFO_APIGW_URL = "fake_url" ,
78+ )
79+ @pytest .mark .parametrize (
80+ ("api_time_zone" , "expected_time_zone" ),
81+ [
82+ # Valid time zones
83+ ("Asia/Shanghai" , "Asia/Shanghai" ),
84+ ("UTC" , "UTC" ),
85+ ("Asia/Tokyo" , "Asia/Tokyo" ),
86+ # Missing time_zone field
87+ (None , None ),
88+ ],
89+ )
90+ @mock .patch ("requests.Session.request" )
91+ def test_authenticate_bk_token_for_tenant_mode_time_zone (
92+ self , mock_request , mocker , api_time_zone , expected_time_zone
93+ ):
94+ """Test time_zone field handling in tenant mode authentication"""
95+ response_data = {
96+ "data" : {
97+ "bk_username" : "test_user" ,
98+ "tenant_id" : "system" ,
99+ "display_name" : "test" ,
100+ "language" : "zh-cn" ,
101+ }
102+ }
103+ if api_time_zone is not None :
104+ response_data ["data" ]["time_zone" ] = api_time_zone
105+
106+ mock_request .return_value = mock_raw_response (response_data )
107+
108+ user = UniversalAuthBackend ().authenticate (
109+ request = mocker .MagicMock (), auth_credentials = {"bk_token" : generate_random_string ()}
110+ )
111+
112+ assert getattr (user , "time_zone" ) == expected_time_zone
74113
75114class TestAPIGatewayAuthBackend :
76115 @pytest .fixture ()
0 commit comments