|
17 | 17 | AuthenticationFacade,
|
18 | 18 | )
|
19 | 19 | from monkey_island.cc.services.authentication_service.i_otp_repository import IOTPRepository
|
| 20 | +from monkey_island.cc.services.authentication_service.mongo_otp_repository import MongoOTPRepository |
20 | 21 | from monkey_island.cc.services.authentication_service.setup import setup_authentication
|
21 | 22 | from monkey_island.cc.services.authentication_service.user import User
|
22 | 23 |
|
@@ -261,3 +262,30 @@ def test_setup_authentication__revokes_tokens(
|
261 | 262 | assert mock_user_datastore.set_uniquifier.call_count == len(USERS)
|
262 | 263 | for user in USERS:
|
263 | 264 | mock_user_datastore.set_uniquifier.assert_any_call(user)
|
| 265 | + |
| 266 | + |
| 267 | +def test_setup_authentication__invalidates_otps( |
| 268 | + monkeypatch, |
| 269 | + mock_flask_app, |
| 270 | + mock_agent_event_queue: IAgentEventQueue, |
| 271 | + mock_island_event_queue: IIslandEventQueue, |
| 272 | + mock_repository_encryptor: ILockableEncryptor, |
| 273 | +): |
| 274 | + mock_otp_repository = MagicMock(spec=MongoOTPRepository) |
| 275 | + mock_security = MagicMock() |
| 276 | + mock_security.datastore = mock_user_datastore |
| 277 | + monkeypatch.setattr( |
| 278 | + "monkey_island.cc.services.authentication_service.setup.configure_flask_security", |
| 279 | + lambda *args: mock_security, |
| 280 | + ) |
| 281 | + |
| 282 | + container = StubDIContainer() |
| 283 | + container.register_instance(MongoOTPRepository, mock_otp_repository) |
| 284 | + container.register_instance(ILockableEncryptor, mock_repository_encryptor) |
| 285 | + container.register_instance(IIslandEventQueue, mock_island_event_queue) |
| 286 | + container.register_instance(IAgentEventQueue, mock_agent_event_queue) |
| 287 | + container.register_instance(pymongo.MongoClient, MockMongoClient()) |
| 288 | + |
| 289 | + setup_authentication(MagicMock(), MagicMock(), container, Path("data_dir"), MagicMock()) |
| 290 | + |
| 291 | + assert mock_otp_repository.reset.called |
0 commit comments