Changeset 2800

Show
Ignore:
Timestamp:
03/22/06 00:43:51 (18 years ago)
Author:
jerome
Message:

Added something to test groups management : it helped find a potential
problem with relational databases, although I'm not sure I'll fix it
before going to bed... :-)

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/tests/filldb.py

    r2783 r2800  
    7474    os.system('pkusers --arguments arguments.list')  
    7575     
     76def createGroups(number) : 
     77    """Creates a number of groups.""" 
     78    sys.stdout.write("Adding %i groups...\n" % number) 
     79    groupnames = [ "test-group-%05i" % i for i in range(number) ] 
     80    argsfile = open("arguments.list", "w") 
     81    argsfile.write('--groups\n--add\n--limitby\nquota\n--description\n"a group"\n') 
     82    for gname in groupnames : 
     83        argsfile.write("%s\n" % gname) 
     84    argsfile.close()     
     85    os.system('pkusers --arguments arguments.list')  
     86    return groupnames 
     87 
     88def deleteGroups(groupnames) : 
     89    """Deletes all test groups.""" 
     90    sys.stdout.write("Deleting groups...\n") 
     91    argsfile = open("arguments.list", "w") 
     92    argsfile.write('--groups\n--delete\n') 
     93    for gname in groupnames : 
     94        argsfile.write("%s\n" % gname) 
     95    argsfile.close()     
     96    os.system('pkusers --arguments arguments.list')  
     97     
    7698def createUserPQuotas(usernames, printernames) : 
    7799    """Creates a number of user print quota entries.""" 
     
    98120    os.system('edpykota --arguments arguments.list')  
    99121     
     122def createGroupPQuotas(groupnames, printernames) : 
     123    """Creates a number of group print quota entries.""" 
     124    number = len(groupnames) * len(printernames) 
     125    sys.stdout.write("Adding %i group print quota entries...\n" % number) 
     126    argsfile = open("arguments.list", "w") 
     127    argsfile.write('--groups\n--add\n--softlimit\n100\n--hardlimit\n110\n--reset\n--hardreset\n--printer\n') 
     128    argsfile.write("%s\n" % ",".join(printernames)) 
     129    for gname in groupnames : 
     130        argsfile.write("%s\n" % gname) 
     131    argsfile.close()     
     132    os.system('edpykota --arguments arguments.list')  
     133 
     134def deleteGroupPQuotas(groupnames, printernames) : 
     135    """Deletes all test group print quota entries.""" 
     136    number = len(groupnames) * len(printernames) 
     137    sys.stdout.write("Deleting group print quota entries...\n") 
     138    argsfile = open("arguments.list", "w") 
     139    argsfile.write('--groups\n--delete\n--printer\n') 
     140    argsfile.write("%s\n" % ",".join(printernames)) 
     141    for gname in groupnames : 
     142        argsfile.write("%s\n" % gname) 
     143    argsfile.close()     
     144    os.system('edpykota --arguments arguments.list')  
     145     
    100146if __name__ == "__main__" :     
    101147    if len(sys.argv) == 1 : 
    102         sys.stderr.write("usage :  %s  [--nodelete]  NbBillingCodes  NbPrinters  NbUsers\n" % sys.argv[0]) 
     148        sys.stderr.write("usage :  %s  [--nodelete]  NbBillingCodes  NbPrinters  NbUsers  NbGroups\n" % sys.argv[0]) 
    103149    else :     
    104150        delete = True 
     
    110156        nbprinters = int(args[1]) 
    111157        nbusers = int(args[2]) 
     158        nbgroups = int(args[3]) 
    112159        if nbbillingcodes : 
    113160            bcodes = createBillingCodes(nbbillingcodes) 
     
    116163        if nbusers :     
    117164            users = createUsers(nbusers) 
     165        if nbgroups :     
     166            groups = createGroups(nbgroups) 
    118167             
    119168        if nbusers and nbprinters :     
     
    122171                deleteUserPQuotas(users, printers) 
    123172             
     173        if nbgroups and nbprinters :     
     174            createGroupPQuotas(groups, printers) 
     175            if delete : 
     176                deleteGroupPQuotas(groups, printers) 
     177             
    124178        if delete :     
    125179            if nbbillingcodes :     
    126180                deleteBillingCodes(bcodes) 
     181            if nbgroups :     
     182                deleteGroups(groups) 
    127183            if nbusers :     
    128                 deleteUsers(users)           # NB : either this one or the one below 
     184                deleteUsers(users) 
    129185            if nbprinters :     
    130                 deletePrinters(printers)     # also delete user print quota entries. 
     186                deletePrinters(printers) 
    131187        os.remove("arguments.list") 
    132188