@@ -1328,6 +1328,15 @@ def test_send_to_logfire_if_token_present_empty_via_env_var() -> None:
13281328 assert len (requests_mocker .request_history ) == 0
13291329
13301330
1331+ def test_send_to_logfire_if_token_present_empty_via_arg () -> None :
1332+ with ExitStack () as stack :
1333+ stack .enter_context (mock .patch ('logfire._internal.config.Confirm.ask' , side_effect = RuntimeError ))
1334+ requests_mocker = stack .enter_context (requests_mock .Mocker ())
1335+ configure (token = '' , send_to_logfire = 'if-token-present' , console = False )
1336+ wait_for_check_token_thread ()
1337+ assert len (requests_mocker .request_history ) == 0
1338+
1339+
13311340def wait_for_check_token_thread ():
13321341 for thread in threading .enumerate ():
13331342 if thread .name == 'check_logfire_token' : # pragma: no cover
@@ -1350,6 +1359,22 @@ def test_send_to_logfire_if_token_present_not_empty(capsys: pytest.CaptureFixtur
13501359 del os .environ ['LOGFIRE_TOKEN' ]
13511360
13521361
1362+ def test_send_to_logfire_if_token_present_not_empty_via_env_with_empty_arg (capsys : pytest .CaptureFixture [str ]) -> None :
1363+ os .environ ['LOGFIRE_TOKEN' ] = 'non_empty_token'
1364+ try :
1365+ with requests_mock .Mocker () as request_mocker :
1366+ request_mocker .get (
1367+ 'https://logfire-us.pydantic.dev/v1/info' ,
1368+ json = {'project_name' : 'myproject' , 'project_url' : 'fake_project_url' },
1369+ )
1370+ configure (token = '' , send_to_logfire = 'if-token-present' )
1371+ wait_for_check_token_thread ()
1372+ assert len (request_mocker .request_history ) == 1
1373+ assert capsys .readouterr ().err == 'Logfire project URL: fake_project_url\n '
1374+ finally :
1375+ del os .environ ['LOGFIRE_TOKEN' ]
1376+
1377+
13531378def test_send_to_logfire_if_token_present_in_logfire_dir (tmp_path : Path , capsys : pytest .CaptureFixture [str ]) -> None :
13541379 creds_file = tmp_path / 'logfire_credentials.json'
13551380 creds_file .write_text (
0 commit comments