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") )
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
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?")
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)
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])
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])
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])
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])