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)
Exemplo n.º 4
0
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']