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)
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')
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))
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)
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)
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')
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)
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)
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')