def test_add_purchase_no_group(self): db.child("groups").child("test_add_purchase").remove() group.Group("test_add_purchase") original_purchases = db.child("groups").child( 'test_add_purchase').child("purchases").get().val() len_original_purchases = len(original_purchases) purchase.Purchase('testing', '', 'coffee', 1345, {'adit': 100}) new_purchases = db.child("groups").child('test_add_purchase').child( "purchases").get().val() len_new_purchases = len(new_purchases) self.assertEqual(len_original_purchases, len_new_purchases)
def add_purchase() -> bytes: """This functions defines the process for adding a purchase to a specific group. The user will add the name of the item and the price, and it will become associated with that specific user and be posted to the group page :return: (HTML) Will redirect the user back to the group page with the updated purchase added in a column""" username = session['is_logged'] group_name = session['group_name'] # if loading the page, get the add_purchase page if request.method == 'GET': group_members = group.get_all_users_in_group(group_name) return render_template('add_purchase.html', username=username, group_name=group_name, group_members=group_members, auto_percent=100 / len(group_members)) elif request.method == 'POST': # add the purchase with the item and price item = request.form['item'] price = request.form['price'] # get the receipt image if 'image' in request.files: image = request.files['image'] temp = tempfile.NamedTemporaryFile(delete=False) image.save(temp.name) group.add_receipt(temp.name, group_name) temp.close() os.remove(temp.name) # do the splitting algorithm group_members = group.get_all_users_in_group(group_name) num_members = len(group_members) group_percentage = {} sum_percentages = 0 # Handles the process of splitting purchases and returning the correct HTML template for member in group_members: group_percentage[member] = request.form[member] sum_percentages += int(float(group_percentage[member])) if sum_percentages == 100: purchase.Purchase(username, group_name, item, price, group_percentage) return redirect(url_for('choose_group')) else: return render_template('add_purchase.html', username=username, group_name=group_name, group_members=group_members, auto_percent=100 / len(group_members))
def test_add_percentages(self): db.child("groups").child("test_add_purchase").remove() group.Group("test_add_purchase") original_purchases = db.child("groups").child( 'test_add_purchase').child("purchases").get().val() len_original_purchases = len(original_purchases) purchase.Purchase('adit', 'test_add_purchase', 'coffee', 1345, { 'adit': 33, 'Morty1': 33, 'Morty2': 34 }) new_purchases = db.child("groups").child('test_add_purchase').child( "purchases").get().val() len_new_purchases = len(new_purchases) self.assertEqual(len_original_purchases + 1, len_new_purchases)