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

Roundup Issue Tracker: http://roundup-tracker.org/