Mercurial > p > roundup > code
diff tools/load_tracker.py @ 2228:1d1362c54c94
Some doc / comment fixes.
Added tools/load_tracker.py - see its usage string. Used to load a tracker
with data for load testing. Preliminary results: sqlite, mysql, postgresql
and metakit break *no* sweat with 2000 issues (approx 1700-1800 "open").
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Tue, 20 Apr 2004 05:47:33 +0000 |
| parents | |
| children | ca2664e095be |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/load_tracker.py Tue Apr 20 05:47:33 2004 +0000 @@ -0,0 +1,80 @@ +#! /usr/bin/env python +# $Id: load_tracker.py,v 1.1 2004-04-20 05:47:33 richard Exp $ + +''' +Usage: %s <tracker home> <N> + +Load up the indicated tracker with N issues and N/100 users. +''' + +import sys, os, random +from roundup import instance + +# open the instance +if len(sys.argv) < 2: + print "Error: Not enough arguments" + print __doc__.strip()%(sys.argv[0], username) + sys.exit(1) +tracker_home = sys.argv[1] +N = int(sys.argv[2]) + +# open the tracker +tracker = instance.open(tracker_home) +db = tracker.open('admin') + +priorities = db.priority.list() +statuses = db.status.list() + +names = ['alpha', 'beta', 'gamma', 'delta', 'epsilon', 'zeta', 'eta', +'theta', 'iota', 'kappa', 'lambda', 'mu', 'nu', 'xi', 'omicron', 'pi', +'rho'] + +titles = '''Lorem ipsum dolor sit amet, consectetuer adipiscing elit. +Duis nibh purus, bibendum sed, condimentum ut, bibendum ut, risus. +Fusce pede enim, nonummy sit amet, dapibus a, blandit eget, metus. +Nulla risus. +Vivamus tincidunt. +Donec consequat convallis quam. +Sed convallis vehicula felis. +Aliquam laoreet, dui quis pharetra vehicula, magna justo. +Euismod felis, eu adipiscing eros metus id tortor. +Suspendisse et turpis. +Aenean non felis. +Nam egestas eros. +Integer tellus quam, mattis ac, vestibulum sed, egestas quis, mauris. +Nulla tincidunt diam sit amet dui. +Nam odio mauris, dignissim vitae, eleifend eu, consectetuer id, risus. +Suspendisse potenti. +Donec tincidunt. +Vestibulum gravida. +Fusce luctus, neque id mattis fringilla, purus pede sodales pede. +Quis ultricies urna odio sed orci.'''.splitlines() + +try: + M = N/100 + print + for i in range(M): + print '\ruser', i*100./M, + sys.stdout.flush() + db.user.create(username=names[i%17]+str(i/17)) + + users = db.user.list() + users.remove(db.user.lookup('anonymous')) + print + + # now create the issues + for i in range(N): + print '\rissue', i*100./N, + sys.stdout.flush() + db.issue.create( + title=random.choice(titles), + priority=random.choice(priorities), + status=random.choice(statuses), + assignedto=random.choice(users)) + print + + db.commit() +finally: + db.close() + +# vim: set filetype=python ts=4 sw=4 et si
