def test_get_stats_limited_ordering(populated_database): test_data, databases = populated_database all_stats = mod.get_stats(databases.librarian, limit=None) oldest_two_stats = mod.get_stats(databases.librarian, limit=2) assert all_stats[0]['time'] == oldest_two_stats[0]['time'] assert all_stats[1]['time'] == oldest_two_stats[1]['time'] assert oldest_two_stats[0]['time'] < oldest_two_stats[1]['time']
def test_clear_transmitted(populated_database): test_data, databases = populated_database stats = mod.get_stats(databases.librarian, limit=None) # We want to set one item aside to prevent it from being cleared first = stats.pop(0) ids = [s['id'] for s in stats] mod.clear_transmitted(databases.librarian, ids) stats = mod.get_stats(databases.librarian, limit=None) assert len(stats) == 1 assert stats[0]['id'] == first['id']
def test_cleanup_stats(sorted_database): max_records = 2 test_data, databases = sorted_database stats_before = mod.get_stats(databases.librarian, limit=None) rowcount = mod.cleanup_stats(databases.librarian, max_records=max_records) stats_after = mod.get_stats(databases.librarian, limit=None) assert len(stats_after) == max_records assert rowcount == len(test_data) - max_records # make sure the stats found after the cleanup are the stats that were the # last ones in the results set acquired before cleanup expected = stats_before[-max_records:] assert all([a['id'] == b['id'] for (a, b) in zip(stats_after, expected)])
def test_get_stats(populated_database): test_data, databases = populated_database stats = mod.get_stats(databases.librarian, limit=None) raw_payload = stats[0]['payload'] payload = bytes(raw_payload) assert isinstance(raw_payload, types.BufferType) assert len(stats) == len(test_data) assert payload in [d.payload for d in test_data]
def test_save_stats(random_datapoint, databases): data = { 'time': random_datapoint.timestamp, 'payload': random_datapoint.payload } mod.save_stats(databases.librarian, data) stats = mod.get_stats(databases.librarian, limit=None) assert len(stats) == 1 assert bytes(stats[0]['payload']) == random_datapoint.payload
def test_clear_transmitted_with_no_ids(populated_database): test_data, databases = populated_database mod.clear_transmitted(databases.librarian, []) stats = mod.get_stats(databases.librarian, len(test_data)) assert len(stats) == len(test_data) # original number of items