Island: Don't raise errors if machine upsert did no changes

It doesn't make sense to raise an error if upsert did no changes, because the purpose of "upsert" method is to ensure that data is up-to-date. If no changes were made it means it's already up-to-date.
This commit is contained in:
vakarisz 2022-10-07 16:02:45 +03:00
parent a143d7206e
commit a96b82fa0f
2 changed files with 0 additions and 21 deletions

View File

@ -38,12 +38,6 @@ class MongoMachineRepository(IMachineRepository):
except Exception as err: except Exception as err:
raise StorageError(f'Error updating machine with ID "{machine.id}": {err}') raise StorageError(f'Error updating machine with ID "{machine.id}": {err}')
if result.matched_count != 0 and result.modified_count != 1:
raise StorageError(
f'Error updating machine with ID "{machine.id}": Expected to update 1 machine, '
f"but {result.modified_count} were updated"
)
if result.matched_count == 0 and result.upserted_id is None: if result.matched_count == 0 and result.upserted_id is None:
raise StorageError( raise StorageError(
f'Error inserting machine with ID "{machine.id}": Expected to insert 1 machine, ' f'Error inserting machine with ID "{machine.id}": Expected to insert 1 machine, '

View File

@ -146,21 +146,6 @@ def test_upsert_machine__storage_error_exception(error_raising_machine_repositor
error_raising_machine_repository.upsert_machine(machine) error_raising_machine_repository.upsert_machine(machine)
def test_upsert_machine__storage_error_update_failed(error_raising_mock_mongo_client):
mock_result = MagicMock()
mock_result.matched_count = 1
mock_result.modified_count = 0
error_raising_mock_mongo_client.monkey_island.machines.replace_one = MagicMock(
return_value=mock_result
)
machine_repository = MongoMachineRepository(error_raising_mock_mongo_client)
machine = MACHINES[0]
with pytest.raises(StorageError):
machine_repository.upsert_machine(machine)
def test_upsert_machine__storage_error_insert_failed(error_raising_mock_mongo_client): def test_upsert_machine__storage_error_insert_failed(error_raising_mock_mongo_client):
mock_result = MagicMock() mock_result = MagicMock()
mock_result.matched_count = 0 mock_result.matched_count = 0