annotate tools/load_tracker.py @ 4669:d7ac6c7bc371

Fix basic authentication. Instatiating the login action would fail if the user is not set. We now first set the user to anonymous and then try basic authentication if enabled.
author Ralf Schlatterbeck <rsc@runtux.com>
date Tue, 16 Oct 2012 18:27:33 +0200
parents 6e3e4f24c753
children 6e9b9743de89
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1 #! /usr/bin/env python
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
2 '''
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
3 Usage: %s <tracker home> <N>
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
5 Load up the indicated tracker with N issues and N/100 users.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
6 '''
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8 import sys, os, random
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9 from roundup import instance
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11 # open the instance
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 if len(sys.argv) < 2:
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 print "Error: Not enough arguments"
3343
53d278e1440f fix error message. backport candidate
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 2261
diff changeset
14 print __doc__.strip()%(sys.argv[0])
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15 sys.exit(1)
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16 tracker_home = sys.argv[1]
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17 N = int(sys.argv[2])
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19 # open the tracker
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20 tracker = instance.open(tracker_home)
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21 db = tracker.open('admin')
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
22
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23 priorities = db.priority.list()
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
24 statuses = db.status.list()
2261
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
25 resolved_id = db.status.lookup('resolved')
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
26 statuses.remove(resolved_id)
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
27
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
28 names = ['alpha', 'beta', 'gamma', 'delta', 'epsilon', 'zeta', 'eta',
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
29 'theta', 'iota', 'kappa', 'lambda', 'mu', 'nu', 'xi', 'omicron', 'pi',
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30 'rho']
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
32 titles = '''Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
33 Duis nibh purus, bibendum sed, condimentum ut, bibendum ut, risus.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
34 Fusce pede enim, nonummy sit amet, dapibus a, blandit eget, metus.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
35 Nulla risus.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
36 Vivamus tincidunt.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
37 Donec consequat convallis quam.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
38 Sed convallis vehicula felis.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
39 Aliquam laoreet, dui quis pharetra vehicula, magna justo.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
40 Euismod felis, eu adipiscing eros metus id tortor.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
41 Suspendisse et turpis.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
42 Aenean non felis.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
43 Nam egestas eros.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
44 Integer tellus quam, mattis ac, vestibulum sed, egestas quis, mauris.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
45 Nulla tincidunt diam sit amet dui.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
46 Nam odio mauris, dignissim vitae, eleifend eu, consectetuer id, risus.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
47 Suspendisse potenti.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
48 Donec tincidunt.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
49 Vestibulum gravida.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
50 Fusce luctus, neque id mattis fringilla, purus pede sodales pede.
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
51 Quis ultricies urna odio sed orci.'''.splitlines()
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
52
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
53 try:
2235
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
54 try:
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
55 db.user.lookup('alpha0')
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
56 except:
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
57 # add some users
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
58 M = N/100
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
59 for i in range(M):
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
60 print '\ruser', i, ' ',
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
61 sys.stdout.flush()
2261
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
62 if i/17 == 0:
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
63 db.user.create(username=names[i%17])
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
64 else:
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
65 db.user.create(username=names[i%17]+str(i/17))
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
66
2235
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
67 # assignable user list
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
68 users = db.user.list()
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
69 users.remove(db.user.lookup('anonymous'))
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
70 print
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
71
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
72 # now create the issues
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
73 for i in range(N):
2235
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
74 print '\rissue', i, ' ',
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
75 sys.stdout.flush()
2261
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
76 # in practise, about 90% of issues are resolved
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
77 if random.random() > .9:
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
78 status = random.choice(statuses)
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
79 else:
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
80 status = resolved_id
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
81 db.issue.create(
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
82 title=random.choice(titles),
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
83 priority=random.choice(priorities),
2261
1bbdd3407eff loader tweak
Richard Jones <richard@users.sourceforge.net>
parents: 2235
diff changeset
84 status=status,
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
85 assignedto=random.choice(users))
2235
87c238d8bc76 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents: 2234
diff changeset
86 if not i%1000:
2230
ca2664e095be disable forking server when os.fork() not available [SF#938586]
Richard Jones <richard@users.sourceforge.net>
parents: 2228
diff changeset
87 db.commit()
2228
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
88 print
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
89
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
90 db.commit()
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
91 finally:
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
92 db.close()
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
93
1d1362c54c94 Some doc / comment fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
94 # vim: set filetype=python ts=4 sw=4 et si

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