Mercurial > p > roundup > code
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 2227:15c20983fd13 | 2228:1d1362c54c94 |
|---|---|
| 1 #! /usr/bin/env python | |
| 2 # $Id: load_tracker.py,v 1.1 2004-04-20 05:47:33 richard Exp $ | |
| 3 | |
| 4 ''' | |
| 5 Usage: %s <tracker home> <N> | |
| 6 | |
| 7 Load up the indicated tracker with N issues and N/100 users. | |
| 8 ''' | |
| 9 | |
| 10 import sys, os, random | |
| 11 from roundup import instance | |
| 12 | |
| 13 # open the instance | |
| 14 if len(sys.argv) < 2: | |
| 15 print "Error: Not enough arguments" | |
| 16 print __doc__.strip()%(sys.argv[0], username) | |
| 17 sys.exit(1) | |
| 18 tracker_home = sys.argv[1] | |
| 19 N = int(sys.argv[2]) | |
| 20 | |
| 21 # open the tracker | |
| 22 tracker = instance.open(tracker_home) | |
| 23 db = tracker.open('admin') | |
| 24 | |
| 25 priorities = db.priority.list() | |
| 26 statuses = db.status.list() | |
| 27 | |
| 28 names = ['alpha', 'beta', 'gamma', 'delta', 'epsilon', 'zeta', 'eta', | |
| 29 'theta', 'iota', 'kappa', 'lambda', 'mu', 'nu', 'xi', 'omicron', 'pi', | |
| 30 'rho'] | |
| 31 | |
| 32 titles = '''Lorem ipsum dolor sit amet, consectetuer adipiscing elit. | |
| 33 Duis nibh purus, bibendum sed, condimentum ut, bibendum ut, risus. | |
| 34 Fusce pede enim, nonummy sit amet, dapibus a, blandit eget, metus. | |
| 35 Nulla risus. | |
| 36 Vivamus tincidunt. | |
| 37 Donec consequat convallis quam. | |
| 38 Sed convallis vehicula felis. | |
| 39 Aliquam laoreet, dui quis pharetra vehicula, magna justo. | |
| 40 Euismod felis, eu adipiscing eros metus id tortor. | |
| 41 Suspendisse et turpis. | |
| 42 Aenean non felis. | |
| 43 Nam egestas eros. | |
| 44 Integer tellus quam, mattis ac, vestibulum sed, egestas quis, mauris. | |
| 45 Nulla tincidunt diam sit amet dui. | |
| 46 Nam odio mauris, dignissim vitae, eleifend eu, consectetuer id, risus. | |
| 47 Suspendisse potenti. | |
| 48 Donec tincidunt. | |
| 49 Vestibulum gravida. | |
| 50 Fusce luctus, neque id mattis fringilla, purus pede sodales pede. | |
| 51 Quis ultricies urna odio sed orci.'''.splitlines() | |
| 52 | |
| 53 try: | |
| 54 M = N/100 | |
| 55 print | |
| 56 for i in range(M): | |
| 57 print '\ruser', i*100./M, | |
| 58 sys.stdout.flush() | |
| 59 db.user.create(username=names[i%17]+str(i/17)) | |
| 60 | |
| 61 users = db.user.list() | |
| 62 users.remove(db.user.lookup('anonymous')) | |
| 63 print | |
| 64 | |
| 65 # now create the issues | |
| 66 for i in range(N): | |
| 67 print '\rissue', i*100./N, | |
| 68 sys.stdout.flush() | |
| 69 db.issue.create( | |
| 70 title=random.choice(titles), | |
| 71 priority=random.choice(priorities), | |
| 72 status=random.choice(statuses), | |
| 73 assignedto=random.choice(users)) | |
| 74 print | |
| 75 | |
| 76 db.commit() | |
| 77 finally: | |
| 78 db.close() | |
| 79 | |
| 80 # vim: set filetype=python ts=4 sw=4 et si |
