Exemplo n.º 1
0
    def test_listings_by_account(self):
        row_count = db.create_account('*****@*****.**', 'First', 'Last', 'password')
        self.assertEqual(row_count, 1)

        row_count = db.create_account('*****@*****.**', 'First', 'Last', 'password')
        self.assertEqual(row_count, 1)

        test_account = db.find_account('*****@*****.**')
        self.assertIsNotNone(test_account)

        test_account = db.find_account('*****@*****.**')
        self.assertIsNotNone(test_account)

        listing_id = db.create_listing('Potatoes', 5, 'Some form of description', 5, '*****@*****.**', 'grams')
        self.assertEqual(listing_id, 100)

        listing_id = db.create_listing('Watermelons', 1, 'Some form of description', 5, '*****@*****.**', 'pounds')
        self.assertEqual(listing_id, 101)

        listing_id = db.create_listing('Potatoes', 5, 'Some form of description', 5, '*****@*****.**', 'grams')
        self.assertEqual(listing_id, 102)

        test_listing = db.find_listing(100)
        self.assertIsNotNone(test_listing)

        test_listing = db.find_listing(101)
        self.assertIsNotNone(test_listing)

        test_listing = db.find_listing(102)
        self.assertIsNotNone(test_listing)

        test_listings = db.listings_by_account('*****@*****.**')
        self.assertEqual(test_listings[0][0], 100)
        self.assertEqual(test_listings[1][0], 101)
Exemplo n.º 2
0
def transfer():
    xfer_form = FundsTransferForm()
    all_accounts = db.all_accounts()

    # Set choices for the "from" account using an ordinary loop
    xfer_form.from_account.choices = []
    for account in all_accounts:
        xfer_form.from_account.choices.append(
            (account['id'], account_details(account)))

    # Set choices for the "to" account using list comprehension
    xfer_form.to_account.choices = [(acct['id'], account_details(acct))
                                    for acct in all_accounts]

    if xfer_form.validate_on_submit():
        # Assume we can do the transfer
        can_do_transfer = True

        # Make sure the source account exists.
        from_account = db.find_account(xfer_form.from_account.data)
        if from_account is None:
            can_do_transfer = False
            flash("The From account doesn't exist")

        # Make sure the destination account exists.
        to_account = db.find_account(xfer_form.to_account.data)
        if to_account is None:
            can_do_transfer = False
            flash("The To account doesn't exist")

        # There must be sufficient funds for the requested transfer
        transfer_amount = xfer_form.amount.data
        if from_account['balance'] < transfer_amount:
            can_do_transfer = False
            flash(
                "Insufficient funds: balance in {} is {:.2f}, amount is {:.2f}"
                .format(from_account['name'], from_account['balance'],
                        transfer_amount))
        if can_do_transfer:
            # Everything checks out; transfer!
            message = db.transfer_funds(from_account['id'], to_account['id'],
                                        transfer_amount,
                                        xfer_form.cause_rollback.data)
            flash("Transferred {:.2f} from {} to {}".format(
                transfer_amount, from_account['name'], to_account['name']))
            flash("Message from model layer: {}".format(message))
            return redirect(url_for('all_accounts'))

    return render_template('transfer-funds.html', form=xfer_form)
def update_account(email):
    row = db.find_account(email)

    if row is None:
        flash("Member {} doesn't exist".format(email))
        return redirect(url_for('all_accounts'))

    account_form = AccountForm(email=row['email'],
                               first_name=row['first_name'],
                               last_name=row['last_name'],
                               bio=row['bio'])

    if account_form.validate_on_submit():
        rowcount = db.update_account(email, account_form.first_name.data,
                                     account_form.last_name.data,
                                     account_form.bio.data,
                                     account_form.password.data)

        if rowcount == 1:
            flash("Account {} updated".format(email))
            return redirect(url_for('find_account', email=email))
        else:
            flash('Account not updated')
    return render_template('account-form.html',
                           form=account_form,
                           mode='update')
Exemplo n.º 4
0
    def test_all_accounts(self):
        for i in range(1, 11):
            row_count = db.create_account('test{0}@example.com'.format(i), 'First', 'Last', 'password')
            self.assertEqual(row_count, 1)

            test_account = db.find_account('test{0}@example.com'.format(i))
            self.assertIsNotNone(test_account)
def favorites(email):
    account = db.find_account(email)

    if account is None:
        flash('404 Account not found')
        return redirect(url_for('render_feed'))
    return render_template('favorites.html',
                           account=account,
                           favorites=db.list_favorites(email))
Exemplo n.º 6
0
    def test_create_account(self):
        row_count = db.create_account('*****@*****.**', 'First', 'Last', 'password')
        self.assertEqual(row_count, 1)

        test_account = db.find_account('*****@*****.**')
        self.assertIsNotNone(test_account)

        self.assertEqual(test_account['first_name'], 'First')
        self.assertEqual(test_account['last_name'], 'Last')
def find_account(email):
    account = db.find_account(email)

    if account is None:
        flash('404 Account not found')
        return redirect(url_for('render_feed'))
    else:
        listings = db.listings_by_account(email)
        return render_template('account.html',
                               account=account,
                               listings=listings)
Exemplo n.º 8
0
    def test_get_id_from_email(self):
        row_count = db.create_account('*****@*****.**', 'First', 'Last', 'password')
        self.assertEqual(row_count, 1)

        test_account = db.find_account('*****@*****.**')
        self.assertIsNotNone(test_account)

        test_id = db.get_id_from_email('*****@*****.**')
        self.assertIsNotNone(test_id)

        self.assertEqual(test_id, 100)
Exemplo n.º 9
0
    def test_find_password(self):
        row_count = db.create_account('*****@*****.**', 'First', 'Last', 'password')
        self.assertEqual(row_count, 1)

        test_account = db.find_account('*****@*****.**')
        self.assertIsNotNone(test_account)

        test_password = db.find_password('*****@*****.**')
        self.assertIsNotNone(test_password)

        self.assertEqual(test_account['password'], 'password')
Exemplo n.º 10
0
    def test_find_listing(self):
        row_count = db.create_account('*****@*****.**', 'First', 'Last', 'password')
        self.assertEqual(row_count, 1)

        test_account = db.find_account('*****@*****.**')
        self.assertIsNotNone(test_account)

        listing_id = db.create_listing('Potatoes', 5, 'Some form of description', 5, '*****@*****.**', 'grams')
        self.assertEqual(listing_id, 100)

        test_listing = db.find_listing(100)
        print(test_listing)
        self.assertIsNotNone(test_listing)
Exemplo n.º 11
0
    def test_all_listings(self):
        for i in range(1, 11):
            row_count = db.create_account('test{0}@example.com'.format(i), 'First', 'Last', 'password')
            self.assertEqual(row_count, 1)

            test_account = db.find_account('test{0}@example.com'.format(i))
            self.assertIsNotNone(test_account)

            listing_id = db.create_listing('Potatoes', 4, 'Basic description', 5,
                                          'test{0}@example.com'.format(i), 'pounds')
            print(listing_id)
            self.assertEqual(listing_id, 99+i)

            test_listing = db.find_listing(99 + i)
            print(test_listing)
            self.assertIsNotNone(test_listing)
Exemplo n.º 12
0
def find_account_by_google_user_id(dbClient, idinfo):
    hashed = hashlib.sha256(idinfo['sub'].encode('utf-8'))
    userid = hashed.hexdigest()
    account = db.find_account(dbClient, userid)
    if account == None:
        # First login for this google user, create an account:
        account = {
            'auth_type': 'Google',
            'userid': userid,
            'email': idinfo['email'],
            'name': idinfo['name'],
            'picture': idinfo['picture'],
            'sonosApiAppKey': SONOSTOOLS_SONOSAPI_APPKEY
        }
        accountid = db.insert_account(dbClient, account).inserted_id
        account['accountid'] = str(accountid)
    return normalize_account(account)
def create_account():
    account_form = AccountForm()

    if account_form.validate_on_submit():
        account = db.find_account(account_form.email.data)

        if account is not None:
            flash("Account {} already exists".format(account_form.email.data))
        else:
            rowcount = db.create_account(account_form.email.data,
                                         account_form.first_name.data,
                                         account_form.last_name.data,
                                         account_form.password.data)

            if rowcount == 1:
                flash("Account {} created".format(account_form.email.data))
                account = Account(account_form.email.data)
                login_user(account)
                return redirect(url_for('render_feed'))
            else:
                flash("New member not created")
    return render_template('account-form.html',
                           form=account_form,
                           mode='create')