Example #1
0
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()
Example #2
0
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()