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

Revision 2783, 4.8 kB (checked in by jerome, 18 years ago)

Now outputs the average speed, so no need to do this in filldb anymore.

  • 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
9
10def createBillingCodes(number) :
11    """Creates a number of billing codes."""
12    sys.stdout.write("Adding %i billing codes...\n" % number)
13    billingcodes = [ "test-billingcode-%05i" % i for i in range(number) ]
14    argsfile = open("arguments.list", "w")
15    argsfile.write('--add\n--reset\n--description\n"a billing code"\n')
16    for bname in billingcodes :
17        argsfile.write("%s\n" % bname)
18    argsfile.close()   
19    os.system('pkbcodes --arguments arguments.list') 
20    return billingcodes
21
22def deleteBillingCodes(billingcodes) :
23    """Deletes all test billing codes."""
24    sys.stdout.write("Deleting billing codes...\n")
25    argsfile = open("arguments.list", "w")
26    argsfile.write('--delete\n')
27    for bname in billingcodes :
28        argsfile.write("%s\n" % bname)
29    argsfile.close()   
30    os.system('pkbcodes --arguments arguments.list') 
31   
32def createPrinters(number) :
33    """Creates a number of printers."""
34    sys.stdout.write("Adding %i printers...\n" % number)
35    printernames = [ "test-printer-%05i" % i for i in range(number) ]
36    argsfile = open("arguments.list", "w")
37    argsfile.write('--add\n--charge\n0.05\n--maxjobsize\n5\n--passthrough\n--description\n"a printer"\n')
38    for pname in printernames :
39        argsfile.write("%s\n" % pname)
40    argsfile.close()   
41    os.system('pkprinters --arguments arguments.list') 
42    return printernames
43
44def deletePrinters(printernames) :
45    """Deletes all test printers."""
46    sys.stdout.write("Deleting printers...\n")
47    argsfile = open("arguments.list", "w")
48    argsfile.write('--delete\n')
49    for pname in printernames :
50        argsfile.write("%s\n" % pname)
51    argsfile.close()   
52    os.system('pkprinters --arguments arguments.list') 
53   
54def createUsers(number) :
55    """Creates a number of users."""
56    sys.stdout.write("Adding %i users...\n" % number)
57    usernames = [ "test-user-%05i" % i for i in range(number) ]
58    argsfile = open("arguments.list", "w")
59    argsfile.write('--add\n--limitby\nbalance\n--balance\n50.0\n--description\n"an user"\n--comment\n"fake payment"\n')
60    for uname in usernames :
61        argsfile.write("%s\n" % uname)
62    argsfile.close()   
63    os.system('pkusers --arguments arguments.list') 
64    return usernames
65
66def deleteUsers(usernames) :
67    """Deletes all test users."""
68    sys.stdout.write("Deleting users...\n")
69    argsfile = open("arguments.list", "w")
70    argsfile.write('--delete\n')
71    for uname in usernames :
72        argsfile.write("%s\n" % uname)
73    argsfile.close()   
74    os.system('pkusers --arguments arguments.list') 
75   
76def createUserPQuotas(usernames, printernames) :
77    """Creates a number of user print quota entries."""
78    number = len(usernames) * len(printernames)
79    sys.stdout.write("Adding %i user print quota entries...\n" % number)
80    argsfile = open("arguments.list", "w")
81    argsfile.write('--add\n--softlimit\n100\n--hardlimit\n110\n--reset\n--hardreset\n--printer\n')
82    argsfile.write("%s\n" % ",".join(printernames))
83    for uname in usernames :
84        argsfile.write("%s\n" % uname)
85    argsfile.close()   
86    os.system('edpykota --arguments arguments.list') 
87
88def deleteUserPQuotas(usernames, printernames) :
89    """Deletes all test user print quota entries."""
90    number = len(usernames) * len(printernames)
91    sys.stdout.write("Deleting user print quota entries...\n")
92    argsfile = open("arguments.list", "w")
93    argsfile.write('--delete\n--printer\n')
94    argsfile.write("%s\n" % ",".join(printernames))
95    for uname in usernames :
96        argsfile.write("%s\n" % uname)
97    argsfile.close()   
98    os.system('edpykota --arguments arguments.list') 
99   
100if __name__ == "__main__" :   
101    if len(sys.argv) == 1 :
102        sys.stderr.write("usage :  %s  [--nodelete]  NbBillingCodes  NbPrinters  NbUsers\n" % sys.argv[0])
103    else :   
104        delete = True
105        args = sys.argv[1:]
106        if args[0] == "--nodelete" :
107            args = args[1:]
108            delete = False
109        nbbillingcodes = int(args[0])
110        nbprinters = int(args[1])
111        nbusers = int(args[2])
112        if nbbillingcodes :
113            bcodes = createBillingCodes(nbbillingcodes)
114        if nbprinters :
115            printers = createPrinters(nbprinters)
116        if nbusers :   
117            users = createUsers(nbusers)
118           
119        if nbusers and nbprinters :   
120            createUserPQuotas(users, printers)
121            if delete :
122                deleteUserPQuotas(users, printers)
123           
124        if delete :   
125            if nbbillingcodes :   
126                deleteBillingCodes(bcodes)
127            if nbusers :   
128                deleteUsers(users)           # NB : either this one or the one below
129            if nbprinters :   
130                deletePrinters(printers)     # also delete user print quota entries.
131        os.remove("arguments.list")
132       
Note: See TracBrowser for help on using the browser.