'try the different reconnect logic, check state & other class vars'

def test_on_connect_timer_reconnect(self):

    self.connection.connection_state = self.connection.CONNECTION_INIT
    self.connection._adapter_connect = mock.Mock(return_value='error')
    self.connection.callbacks = mock.Mock(spec=self.connection.callbacks)
    self.connection.remaining_connection_attempts = 2
    self.connection.params.retry_delay = 555
    self.connection.params.connection_attempts = 99
    self.connection.add_timeout = mock.Mock()
    self.connection._on_connect_timer()
    self.connection.add_timeout.assert_called_once_with(555, self.connection._on_connect_timer)
    self.assertEqual(1, self.connection.remaining_connection_attempts)
    self.assertFalse(self.connection.callbacks.process.called)
    self.assertEqual(self.connection.CONNECTION_INIT, self.connection.connection_state)
    self.connection.add_timeout.reset_mock()
    self.connection._on_connect_timer()
    self.assertFalse(self.connection.add_timeout.called)
    self.assertEqual(99, self.connection.remaining_connection_attempts)
    self.connection.callbacks.process.assert_called_once_with(0, self.connection.ON_CONNECTION_ERROR, self.connection, self.connection, 'error')
    self.assertEqual(self.connection.CONNECTION_CLOSED, self.connection.connection_state)
