It took me a while to figure out why you needed 2 mock_cass instances here. Could you have not done it with a single one reseting as you already do, but instead saving off the return_values before calling them? E.g.

    rv = self.mock_cass.get_slice.return_value = defer.Deferred()
    self.mock_cass.get_slice.assert_called_once_with(column_family=config.PUBLIC_IDS_TABLE,  key='priv', start='pub', finish='pub')
    self.mock_cass.reset_mock()
    rv2 = self.mock_cass.get_slice.return_value = defer.Deferred()
    rv.callback([])