def test_get_stats_bitstream(populated_database):
    test_data, databases = populated_database
    sorted_data = sorted(test_data, key=lambda x: x.timestamp)
    expected_stream = b''.join(bytes(d.payload) for d in sorted_data)
    ids, bitstream = mod.get_stats_bitstream(databases.librarian, limit=None)
    assert len(list(ids)) == len(test_data)
    assert bitstream == expected_stream
def test_get_stats_bitstream(get_stats, merge_streams):
    get_stats.return_value = [{'id': 1, 'payload': 'foo'},
                              {'id': 2, 'payload': 'bar'}]
    merge_streams.return_value = 'foobar'
    ids, payload = mod.get_stats_bitstream(db=mock.Mock(), limit=None)
    assert list(ids) == [1, 2]
    assert payload == b'foobar'
def test_get_stats_bitstream_empty_database(databases):
    ids, bitstream = mod.get_stats_bitstream(databases.librarian, limit=None)
    assert len(list(ids)) == 0
    assert bitstream == b''
def test_get_stats_bitstream_no_stats(get_stats):
    get_stats.return_value = []
    assert mod.get_stats_bitstream(db=mock.Mock(), limit=None) == ([], b'')