def test_configuration(self):
     """Test configuration options that are stored in ReportError.
     """
     from __main__ import config
     self.assertTrue(_failure_tracker.ReportError._NOTIFICATIONS,
                     config.get("failure_tracking", "notifications"))
     self.assertTrue(_failure_tracker.ReportError._NOTIFICATION_CLIENTS,
                     config.get("failure_tracking", "notification_clients"))
     self.assertTrue(
         _failure_tracker.ReportError._NOTIFICATION_INTERVAL,
         config.get("failure_tracking", "notification_interval"))
    def tearDown(self):
        """Clean up the existing environment
        """
        tests.utils.cleanup_environment()

        from __main__ import config
        _failure_tracker.ReportError._NOTIFICATION_INTERVAL = \
            int(config.get("failure_tracking", "notification_interval"))
        _failure_tracker.ReportError._NOTIFICATIONS = \
            int(config.get("failure_tracking", "notifications"))
        _failure_tracker.ReportError._NOTIFICATION_CLIENTS = \
            int(config.get("failure_tracking", "notification_clients"))
    def tearDown(self):
        """Clean up the existing environment
        """
        tests.utils.cleanup_environment()
        tests.utils.teardown_xmlrpc(self.manager, self.proxy)

        from __main__ import config
        _failure_tracker.ReportError._NOTIFICATION_INTERVAL = \
            int(config.get("failure_tracking", "notification_interval"))
        _failure_tracker.ReportError._NOTIFICATIONS = \
            int(config.get("failure_tracking", "notifications"))
        _failure_tracker.ReportError._NOTIFICATION_CLIENTS = \
            int(config.get("failure_tracking", "notification_clients"))
 def test_configuration(self):
     """Test configuration options that are stored in ReportError.
     """
     from __main__ import config
     self.assertTrue(
         _failure_tracker.ReportError._NOTIFICATIONS,
         config.get("failure_tracking", "notifications")
     )
     self.assertTrue(
         _failure_tracker.ReportError._NOTIFICATION_CLIENTS,
         config.get("failure_tracking", "notification_clients")
     )
     self.assertTrue(
         _failure_tracker.ReportError._NOTIFICATION_INTERVAL,
         config.get("failure_tracking", "notification_interval")
     )
Example #5
0
def getIssue(electionID, issueID):
    "Get JSON data from an issue"
    issuedata, ihash = backend.issue_get(electionID, issueID)
    if issuedata:
        issuedata['hash'] = ihash
        issuedata['id'] = issueID
        issuedata['APIURL'] = "https://%s/steve/voter/view/%s/%s" % (
            config.get("general", "rooturl"), electionID, issueID)
        issuedata['prettyURL'] = "https://%s/steve/ballot?%s/%s" % (config.get(
            "general", "rooturl"), electionID, issueID)

        # Add vote category for JS magic
        for vtype in constants.VOTE_TYPES:
            if vtype['key'] == issuedata['type']:
                issuedata['category'] = vtype['category']
                break

    return issuedata
Example #6
0
def email(rcpt, subject, message):
    sender = config.get("email", "sender")
    signature = config.get("email", "signature")
    receivers = [rcpt]
    # py 2 vs 3 conversion
    if type(message) is bytes:
        message = message.decode('utf-8', errors='replace')
    msg = u"""From: %s
To: %s
Subject: %s

%s

With regards,
%s
--
Powered by Apache STeVe - https://steve.apache.org
""" % (sender, rcpt, subject, message, signature)
    msg = msg.encode('utf-8', errors='replace')
    try:
        smtpObj = smtplib.SMTP(config.get("email", "mta"))
        smtpObj.sendmail(sender, receivers, msg)
    except SMTPException:
        raise Exception("Could not send email - SMTP server down?")
Example #7
0
def getHash(electionID):
    basedata = getBasedata(electionID)
    issues = listIssues(electionID)
    ihash = ""
    output = []
    for issue in issues:
        issuedata = getIssue(electionID, issue)
        votes = getVotes(electionID, issue)
        ihash += issuedata['hash']
        output.append(
            "Issue #%s: %s\n- Checksum: %s\n- Votes cast: %u\n" %
            (issue, issuedata['title'], issuedata['hash'], len(votes)))
    tothash = hashlib.sha224(ihash).hexdigest()
    output.insert(0, (
        "You are receiving this data because you are listed as a monitor for this election.\nThe following data shows the state of the election data on disk. If any of these checksums change, especially the main checksum, then the election has been edited (rigged?) after invites were sent out.\n\nMain Election Checksum : %s\n\n"
        % tothash))
    output.append(
        "\nYou can monitor votes and recasts online at: %s/monitor.html?%s" %
        (config.get("general", "rooturl"), electionID))
    return tothash, "\n".join(output)
Example #8
0
from subprocess import check_output, STDOUT
from __main__ import config

github_username = config.get('github', 'username')

def clone(args):
    if args[0].find('/') < 0:
        args[0] = github_username + '/' + args[0]
    out = check_output(['git', 'clone', '[email protected]:'+args[0]+'.git'], stderr=STDOUT)
    #TODO: check if really cloned!
    print('Sklonowałem repozytorium '+args[0])
Example #9
0
from subprocess import check_output, STDOUT
from __main__ import config

transmission_credentials = config.get('transmission', 'credentials')

def torrent(filename):
    out = check_output(["transmission-remote", "-n", transmission_credentials, "-a", filename])
    if not out:
        print('Wszystko poszło jak po maśle; sprawdź postęp just check downloads')

def download(args):
    if args[0][:14] == 'https://kat.cr':
        import gzip
        from urllib.request import urlopen
        with urlopen(args[0]) as r:
            gzipFile = gzip.GzipFile(fileobj=r)
            re = gzipFile.read().decode('utf-8').splitlines()
            for line in re:
                if line.find('data-download') > -1:
                    torrent('http://'+line.split('//')[1].split('"')[0])
                    break
    elif args[0][-8:] == '.torrent':
        return torrent(args[0])
Example #10
0
from subprocess import check_output, STDOUT
from __main__ import config

github_username = config.get('github', 'username')


def clone(args):
    if args[0].find('/') < 0:
        args[0] = github_username + '/' + args[0]
    out = check_output(['git', 'clone', '[email protected]:' + args[0] + '.git'],
                       stderr=STDOUT)
    #TODO: check if really cloned!
    print('Sklonowałem repozytorium ' + args[0])
Example #11
0
from subprocess import check_output, STDOUT
from __main__ import config

transmission_credentials = config.get('transmission', 'credentials')


def torrent(filename):
    out = check_output([
        "transmission-remote", "-n", transmission_credentials, "-a", filename
    ])
    if not out:
        print(
            'Wszystko poszło jak po maśle; sprawdź postęp just check downloads'
        )


def download(args):
    if args[0][:14] == 'https://kat.cr':
        import gzip
        from urllib.request import urlopen
        with urlopen(args[0]) as r:
            gzipFile = gzip.GzipFile(fileobj=r)
            re = gzipFile.read().decode('utf-8').splitlines()
            for line in re:
                if line.find('data-download') > -1:
                    torrent('http://' + line.split('//')[1].split('"')[0])
                    break
    elif args[0][-8:] == '.torrent':
        return torrent(args[0])