forked from p15670423/monkey
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:
parent
a143d7206e
commit
a96b82fa0f
|
@ -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, '
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue