root / pykota / trunk / tests / filldb.py @ 2702

Revision 2702, 3.4 kB (checked in by jerome, 18 years ago)

Now displays the number of entries per second.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
Line 
1#! /usr/bin/env python
2# -*- coding: ISO-8859-15 -*-
3
4# $Id$
5
6
7import sys
8import os
9import time
10
11def showTiming(number, before) :
12    """Displays timing information."""
13    elapsed = time.time() - before
14    persecond = int(float(number) / elapsed)
15    sys.stdout.write("\nTime elapsed : %.2f seconds (%i entries per second)\n\n" % (elapsed, persecond))
16   
17def createBillingCodes(number) :
18    """Creates a number of billing codes."""
19    sys.stdout.write("Adding %i billing codes...\n" % number)
20    billingcodes = [ "test-billingcode-%05i" % i for i in range(number) ]
21    argsfile = open("arguments.list", "w")
22    argsfile.write('--add\n--reset\n--description\n"a billing code"\n')
23    for bname in billingcodes :
24        argsfile.write("%s\n" % bname)
25    argsfile.close()   
26    before = time.time()
27    os.system('pkbcodes --arguments arguments.list') 
28    showTiming(number, before)
29
30def deleteBillingCodes(number) :
31    """Deletes all test billing codes."""
32    sys.stdout.write("Deleting billing codes...\n")
33    before = time.time()
34    os.system('pkbcodes --delete "test-billingcode-*"') 
35    showTiming(number, before)
36   
37def createPrinters(number) :
38    """Creates a number of printers."""
39    sys.stdout.write("Adding %i printers...\n" % number)
40    printernames = [ "test-printer-%05i" % i for i in range(number) ]
41    argsfile = open("arguments.list", "w")
42    argsfile.write('--add\n--charge\n0.05\n--maxjobsize\n5\n--passthrough\n--description\n"a printer"\n')
43    for pname in printernames :
44        argsfile.write("%s\n" % pname)
45    argsfile.close()   
46    before = time.time()
47    os.system('pkprinters --arguments arguments.list') 
48    showTiming(number, before)
49
50def deletePrinters(number) :
51    """Deletes all test printers."""
52    sys.stdout.write("Deleting printers...\n")
53    before = time.time()
54    os.system('pkprinters --delete "test-printer-*"') 
55    showTiming(number, before)
56   
57def createUsers(number) :
58    """Creates a number of users."""
59    sys.stdout.write("Adding %i users...\n" % number)
60    usernames = [ "test-user-%05i" % i for i in range(number) ]
61    argsfile = open("arguments.list", "w")
62    argsfile.write('--add\n--limitby\nbalance\n--balance\n50.0\n')
63    for uname in usernames :
64        argsfile.write("%s\n" % uname)
65    argsfile.close()   
66    before = time.time()
67    os.system('edpykota --arguments arguments.list') 
68    showTiming(number, before)
69
70def deleteUsers(number) :
71    """Deletes all test users."""
72    sys.stdout.write("Deleting users...\n")
73    before = time.time()
74    os.system('edpykota --delete "test-user-*"') 
75    showTiming(number, before)
76   
77if __name__ == "__main__" :   
78    if len(sys.argv) == 1 :
79        sys.stderr.write("usage :  %s  NbBillingCodes  NbPrinters  NbUsers\n" % sys.argv[0])
80    else :   
81        nbbillingcodes = int(sys.argv[1])
82        nbprinters = int(sys.argv[2])
83        nbusers = int(sys.argv[3])
84        if nbbillingcodes :
85            createBillingCodes(nbbillingcodes)
86        if nbprinters :
87            createPrinters(nbprinters)
88        if nbusers :   
89            createUsers(nbusers)
90        if nbbillingcodes :   
91            deleteBillingCodes(nbbillingcodes)
92        if nbusers :   
93            deleteUsers(nbusers)           # NB : either this one or the one below
94        if nbprinters :   
95            deletePrinters(nbprinters)        # also delete user print quota entries.
96        os.remove("arguments.list")
97       
Note: See TracBrowser for help on using the browser.