diff --git a/IPython/parallel/controller/hub.py b/IPython/parallel/controller/hub.py index 300b496..eea28ed 100644 --- a/IPython/parallel/controller/hub.py +++ b/IPython/parallel/controller/hub.py @@ -1271,17 +1271,17 @@ class Hub(SessionFactory): buffer_lens = [] if 'buffers' in keys else None result_buffer_lens = [] if 'result_buffers' in keys else None else: - buffer_lens = [] - result_buffer_lens = [] + buffer_lens = None + result_buffer_lens = None for rec in records: # buffers may be None, so double check + b = rec.pop('buffers', empty) or empty if buffer_lens is not None: - b = rec.pop('buffers', empty) or empty buffer_lens.append(len(b)) buffers.extend(b) + rb = rec.pop('result_buffers', empty) or empty if result_buffer_lens is not None: - rb = rec.pop('result_buffers', empty) or empty result_buffer_lens.append(len(rb)) buffers.extend(rb) content = dict(status='ok', records=records, buffer_lens=buffer_lens, diff --git a/IPython/parallel/tests/test_client.py b/IPython/parallel/tests/test_client.py index 9ad18b8..db58524 100644 --- a/IPython/parallel/tests/test_client.py +++ b/IPython/parallel/tests/test_client.py @@ -223,6 +223,14 @@ class TestClient(ClusterTestCase): for rec in found: self.assertEquals(set(rec.keys()), set(['msg_id', 'submitted', 'completed'])) + def test_db_query_default_keys(self): + """default db_query excludes buffers""" + found = self.client.db_query({'msg_id': {'$ne' : ''}}) + for rec in found: + keys = set(rec.keys()) + self.assertFalse('buffers' in keys, "'buffers' should not be in: %s" % keys) + self.assertFalse('result_buffers' in keys, "'result_buffers' should not be in: %s" % keys) + def test_db_query_msg_id(self): """ensure msg_id is always in db queries""" found = self.client.db_query({'msg_id': {'$ne' : ''}},keys=['submitted', 'completed'])