class AuthManagerTest(unittest.TestCase): mgr = AuthManager(None, MockUsersManager()) def test_hash_password(self): pwd = 'Ezekiel2517' expected_hash = 'C27E5A5B42AD5F7C1204E36DE2C569C37496FC41213960A147BE53B1DF2867FC' actual_hash = self.mgr.hash_password(pwd) assert expected_hash == actual_hash def test_compare_hashes(self): hash1 = 'C27E5A5B42AD5F7C1204E36DE2C569C37496FC41213960A147BE53B1DF2867FC' hash2 = 'C27E5A5B42AD5F7C1204E36DE2C569C37496FC41213960A147BE53B1DF2867FC' assert self.mgr.compare_hashes(hash1, hash2) is True assert self.mgr.compare_hashes(hash1 + '1', hash2) is False def test_check_auth(self): username = '******' password = '******' assert self.mgr.check_auth(username, password) is True assert self.mgr.check_auth(username, password + '1') is False assert self.mgr.check_auth(username + '1', password) is False def test_check_token(self): token = 'aGFycnk6RXpla2llbDI1MTc=' assert self.mgr.check_token(token) is True token = 'ZmFrZTpwYXNzd29yZA==' assert self.mgr.check_token(token) is False def test_generate_token(self): username = '******' password = '******' test_token = self.mgr.generate_token(username, password) real_token = 'aGFycnk6RXpla2llbDI1MTc=' print(test_token) assert test_token == real_token
if __name__ == '__main__': if len(sys.argv) != 4: print "$ stream_tweets_main [destinationFolder] [credentials] [tagList]" quit() try: DATA_DIRECTORY = os.path.join(sys.argv[1]) LOG_FILE_DIRECTORY = os.path.join(sys.argv[1], 'log') CREDENTIALS_FILE_PATH = os.path.join(sys.argv[2]) TAG_FILE_PATH = os.path.join(sys.argv[3]) if not os.path.exists(DATA_DIRECTORY): os.makedirs(DATA_DIRECTORY) if not os.path.exists(LOG_FILE_DIRECTORY): os.makedirs(LOG_FILE_DIRECTORY) auth_manager = AuthManager(CREDENTIALS_FILE_PATH) num_handlers = len(auth_manager.auth_handlers) tag_manager = TagManager(TAG_FILE_PATH, num_handlers) logger = Logger(LOG_FILE_DIRECTORY) for i in xrange(num_handlers): listener = CustomListener(i, DATA_DIRECTORY, sys.argv[0], logger) stream = CustomStream(listener, auth_manager.auth_handlers[i], tag_manager.distributed_tag_list[i]) stream.stream(async=True) except IOError: print '{0} stopped running...'.format(sys.argv[0]) except: logger.log(500, 0, 'Some run-time error has occurred. Restarting...') os.system('python {0} {1} {2} {3}'.format(sys.argv[0], sys.argv[1], sys.argv[2], sys.argv[3]))
def main(args): CREDENTIALS_FILE_PATH = os.path.join(args.c) auth_manager = AuthManager(CREDENTIALS_FILE_PATH) TweetsCollector(args.i, args.o, auth_manager)
from flask import Flask, jsonify, request, abort, render_template from database_connector import DatabaseConnector from auth_manager import AuthManager from accounts_manager import AccountsManager from transactions_manager import TransactionsManager import time database_connector = DatabaseConnector() auth_manager = AuthManager(database_connector) accounts_manager = AccountsManager(database_connector) transactions_manager = TransactionsManager(database_connector, accounts_manager) app = Flask(__name__) app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0 @app.route('/auth', methods=['POST']) def get_token(): """ HTTP POST /auth: { username: username, password: password } """ if 'username' not in request.form or 'password' not in request.form: abort(400, 'Username or password missing from form-data. ') username = request.form['username'] password = request.form['password']