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

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