def test_execute_statement_when_closed(self, mock_executor, mock_session):
        transaction = Transaction(mock_session, MOCK_READ_AHEAD, MOCK_ID,
                                  mock_executor)
        transaction._is_closed = True

        self.assertRaises(TransactionClosedError,
                          transaction._execute_statement, MOCK_STATEMENT)
    def test_abort_when_not_closed(self, mock_internal_close, mock_executor, mock_session):
        transaction = Transaction(mock_session, MOCK_READ_AHEAD, MOCK_ID, mock_executor)
        transaction._is_closed = False
        transaction.abort()

        mock_internal_close.assert_called_once_with()
        mock_session.abort_transaction.assert_called_once_with()
    def test_internal_close(self, mock_cursor_1, mock_cursor_2, mock_executor, mock_session):
        transaction = Transaction(mock_session, MOCK_READ_AHEAD, MOCK_ID, mock_executor)
        transaction._cursors = [mock_cursor_1, mock_cursor_2]
        transaction._is_closed = False

        transaction._internal_close()

        self.assertTrue(transaction._is_closed)
        self.assertEqual(transaction._cursors, [])
        mock_cursor_1.close.assert_called_once_with()
        mock_cursor_2.close.assert_called_once_with()
    def test_commit_when_closed(self, mock_executor, mock_session):
        transaction = Transaction(mock_session, MOCK_READ_AHEAD, MOCK_ID,
                                  mock_executor)
        transaction._is_closed = True

        self.assertRaises(TransactionClosedError, transaction._commit)