(
self,
mock_discover,
mock_session_cls,
mock_server_cls,
mock_browser_open,
mock_save_credentials,
)
| 238 | }, |
| 239 | ) |
| 240 | def test_authorize_success( |
| 241 | self, |
| 242 | mock_discover, |
| 243 | mock_session_cls, |
| 244 | mock_server_cls, |
| 245 | mock_browser_open, |
| 246 | mock_save_credentials, |
| 247 | ): |
| 248 | mock_session = MagicMock() |
| 249 | mock_session.create_authorization_url.return_value = ( |
| 250 | "https://auth.example/authorize?state=abc", |
| 251 | "abc", |
| 252 | ) |
| 253 | mock_session.fetch_token.return_value = {"access_token": "token"} |
| 254 | mock_session_cls.return_value = mock_session |
| 255 | |
| 256 | mock_server = MagicMock() |
| 257 | mock_server.handle_request.side_effect = lambda: setattr( |
| 258 | auth._CallbackHandler, |
| 259 | "callback_url", |
| 260 | "http://localhost:8090/callback?code=123", |
| 261 | ) |
| 262 | mock_server_cls.return_value = mock_server |
| 263 | |
| 264 | auth._CallbackHandler.callback_url = None |
| 265 | auth._CallbackHandler.error = None |
| 266 | |
| 267 | result = auth.authorize() |
| 268 | |
| 269 | self.assertEqual(result, {"access_token": "token"}) |
| 270 | mock_browser_open.assert_called_once() |
| 271 | mock_server.handle_request.assert_called_once() |
| 272 | mock_server.server_close.assert_called_once() |
| 273 | mock_save_credentials.assert_called_once_with({"access_token": "token"}) |
| 274 | |
| 275 | @patch("codecarbon.cli.auth.HTTPServer") |
| 276 | @patch("codecarbon.cli.auth.OAuth2Session") |
nothing calls this directly
no outgoing calls
no test coverage detected