@@ -33,4 +33,64 @@ def test_get_api_url_valid_url_no_trailing_slash():
3333 assert get_api_url () == valid_url_no_slash + "/"
3434
3535
36+ def test_get_api_url_no_token_defaults_to_eu ():
37+ """Test when neither AIKIDO_ENDPOINT nor AIKIDO_TOKEN is set."""
38+ with patch .dict (os .environ , {}, clear = True ):
39+ assert get_api_url () == DEFAULT_API_URL
40+
41+
42+ def test_get_api_url_old_format_token_defaults_to_eu ():
43+ """Test when AIKIDO_TOKEN is set with the old token format."""
44+ with patch .dict (
45+ os .environ ,
46+ {"AIKIDO_TOKEN" : "AIK_RUNTIME_123_456_random" },
47+ clear = True ,
48+ ):
49+ assert get_api_url () == DEFAULT_API_URL
50+
51+
52+ def test_get_api_url_us_region_token ():
53+ """Test when AIKIDO_TOKEN encodes the US region."""
54+ with patch .dict (
55+ os .environ ,
56+ {"AIKIDO_TOKEN" : "AIK_RUNTIME_123_456_US_random" },
57+ clear = True ,
58+ ):
59+ assert get_api_url () == "https://guard.us.aikido.dev/"
60+
61+
62+ def test_get_api_url_me_region_token ():
63+ """Test when AIKIDO_TOKEN encodes the ME region."""
64+ with patch .dict (
65+ os .environ ,
66+ {"AIKIDO_TOKEN" : "AIK_RUNTIME_123_456_ME_random" },
67+ clear = True ,
68+ ):
69+ assert get_api_url () == "https://guard.me.aikido.dev/"
70+
71+
72+ def test_get_api_url_au_region_token ():
73+ """Test when AIKIDO_TOKEN encodes the AU region."""
74+ with patch .dict (
75+ os .environ ,
76+ {"AIKIDO_TOKEN" : "AIK_RUNTIME_123_456_AU_random" },
77+ clear = True ,
78+ ):
79+ assert get_api_url () == "https://guard.au.aikido.dev/"
80+
81+
82+ def test_get_api_url_endpoint_env_var_takes_precedence_over_token ():
83+ """Test that AIKIDO_ENDPOINT overrides region derived from AIKIDO_TOKEN."""
84+ valid_url = "https://example.com/api"
85+ with patch .dict (
86+ os .environ ,
87+ {
88+ "AIKIDO_ENDPOINT" : valid_url ,
89+ "AIKIDO_TOKEN" : "AIK_RUNTIME_123_456_US_random" ,
90+ },
91+ clear = True ,
92+ ):
93+ assert get_api_url () == valid_url + "/"
94+
95+
3696# You may need to mock the try_parse_url function if it has side effects or is complex
0 commit comments