import gnuviech, sys
import gnuviech.tools
from gnuviech.gnvdomain import GNVDomain

class Test:
    def __init__(self, prefs):
        self.logger = prefs.getLogger(self)
        self.prefs = prefs

    def doTest(self):
        self.logger.debug(str(prefs))
        minlen = 0
        avglen = 0
        maxlen = 0
        pwds = 20
        for i in range(pwds):
            pwd = gnuviech.tools.generatePassword()
            self.logger.debug("%02d: %s (%d)" % (i, pwd, len(pwd)))
            if (minlen == 0) or (len(pwd) < minlen): minlen = len(pwd)
            if (len(pwd) > maxlen): maxlen = len(pwd)
            avglen += len(pwd)
        avglen = avglen/pwds
        self.logger.debug("""average password length: %d
minimum password length: %d
maximum password length: %d""" % (avglen, minlen, maxlen))

        for address in ('jan@dittberner.info', 'jan', 'jan@gnuelf#test.de',
                        'd.arnstadt@gmx.net'):
            if gnuviech.tools.checkEmail(address):
                self.logger.debug("%s is a valid email address." % address)
            else:
                self.logger.debug("%s is an invalid email address." % address)

        domain = GNVDomain("dittberner.info", self.prefs)
        self.logger.debug("Domain %s." % domain)
        domain = GNVDomain("jesusgemeindesohland.de", self.prefs)
        self.logger.debug("Domain %s." % domain)
        
if __name__ == "__main__":
    prefs = gnuviech.GNVPrefs()
    Test(prefs).doTest()