def test_commit_batch_success(last_batch, expected_calls, db, monkeypatch): """Assert commit() and close() calls when no data exception occurs""" # GIVEN monkeypatch.setattr(db.session, "commit", mock.Mock()) monkeypatch.setattr(db.session, "rollback", mock.Mock()) monkeypatch.setattr(db.session, "close", mock.Mock()) # WHEN loader = Loader(db) loader.commit_batch(last_batch=last_batch) # THEN for expected_call in expected_calls: getattr(db.session, expected_call).assert_called_once() db.session.rollback.assert_not_called()
def test_commit_batch_failure(db, monkeypatch): """Assert rollback() and close() called and error re-raised when a DataError occurs""" # GIVEN monkeypatch.setattr(db.session, "commit", mock.Mock(side_effect=DataError(None, None, None))) monkeypatch.setattr(db.session, "rollback", mock.Mock()) monkeypatch.setattr(db.session, "close", mock.Mock()) with pytest.raises(DataError): # WHEN loader = Loader(db) loader.commit_batch() # THEN db.session.commit.assert_called_once() db.session.rollback.assert_called_once() db.session.close.assert_called_once()