def text_bucket_drain(self): myBucket = Bucket(20000, drain_period=86400) user = _randomBytes() self.assertTrue(myBucket.userCanSyncAmount(user, 20000, 1234)) self.assertEqual(myBucket.currentSizeForUser(user, 1234), 20000) self.assertEqual(myBucket.currentSizeForUser(user, 1234 + 21600), 5000) self.assertEqual(myBucket.currentSizeForUser(user, 1234 + 43200), 10000) self.assertEqual(myBucket.currentSizeForUser(user, 1234 + 64800), 15000) self.assertEqual(myBucket.currentSizeForUser(user, 1234 + 86400), 20000)
def test_bucket_sync_too_fast(self): myBucket = Bucket(20000, drain_period=86400) user = _randomBytes() self.assertTrue(myBucket.userCanSyncAmount(user, 10000, 1234)) self.assertEqual(myBucket.currentSizeForUser(user, 1234), 10000) self.assertTrue(myBucket.userCanSyncAmount(user, 10000, 1235)) self.assertFalse(myBucket.userCanSyncAmount(user, 10000, 1236))