diff --git a/s3tests/realistic.py b/s3tests/realistic.py index 3251136..458fa08 100644 --- a/s3tests/realistic.py +++ b/s3tests/realistic.py @@ -137,12 +137,13 @@ def files(mean, stddev, seed=None): break yield RandomContentFile(size=size, seed=rand.getrandbits(32)) -def names(mean, stddev, charset=None, seed=None): +def names(mean, stddev, charset=None, seed=None, max_amount=None): """ Yields strings that are somewhat plausible as file names, where the lenght of each filename follows the normal distribution with `mean` and `stddev`. """ + count = 0 if charset is None: charset = string.ascii_lowercase rand = random.Random(seed) @@ -154,6 +155,11 @@ def names(mean, stddev, charset=None, seed=None): name = ''.join(rand.choice(charset) for _ in xrange(length)) yield name + count += 1 + if count == max_amount: + return + + def files_varied(groups, unlimited=False): """ Yields a weighted-random selection of file-like objects. """ # Quick data type sanity.