def test_employee_expenses_process_accepted(client, web2py): """Check if a claim can be moved to accepted""" from populate_os_tables import populate_employee_claims url = '/default/user/login' client.get(url) assert client.status == 200 populate_employee_claims(web2py) # Check expenses display url = '/finance/employee_expenses_process_accepted' client.get(url) assert client.status == 200 assert web2py.db(web2py.db.employee_claims.Status == 'processed').count() == 2 assert web2py.db(web2py.db.invoices).count() >= 1 # Get first invoice with employee claim set to true and check description query = (web2py.db.invoices.EmployeeClaim == True) invoice = web2py.db(query).select().first() assert invoice.Description == 'Expenses' # Check invoice items query = (web2py.db.invoices_items_employee_claims.id > 0) rows = web2py.db(query).select(web2py.db.invoices_items_employee_claims.ALL) for i, row in enumerate(rows): claim = web2py.db.employee_claims(row.employee_claims_id) invoice_item = web2py.db.invoices_items(row.invoices_items_id) assert invoice_item.Description == claim.Description assert invoice_item.Quantity == claim.Quantity assert invoice_item.Price == claim.Amount * -1 assert invoice_item.TotalPriceVAT == (claim.Amount * -1) * claim.Quantity
def test_my_expenses_edit(client, web2py): """ Can you edit an expense """ from populate_os_tables import populate_employee_claims url = '/default/user/login' client.get(url) assert client.status == 200 populate_employee_claims(web2py) # Check expenses display url = '/ep/my_expenses_expense_edit?ecID=1' client.get(url) assert client.status == 200 data = { 'id': '1', 'Amount': '5', 'Quantity': '3', 'tax_rates_id': '1', 'Description': 'Edit first expense' } client.post(url, data=data) assert client.status == 200 assert (web2py.db.employee_claims.Description == data['Description'])
def test_employee_expenses_move_claim_to_rejected(client, web2py): """Check if a claim can be moved to accepted""" from populate_os_tables import populate_employee_claims url = '/default/user/login' client.get(url) assert client.status == 200 populate_employee_claims(web2py) # Check expenses display url = '/finance/employee_expenses_reject?ecID=1' client.get(url) assert client.status == 200 assert web2py.db(web2py.db.employee_claims.Status == 'rejected').count() == 2
def test_my_expenses(client, web2py): """ Is the my expenses page showing? """ from populate_os_tables import populate_employee_claims url = '/default/user/login' client.get(url) assert client.status == 200 populate_employee_claims(web2py) # Check expenses display url = '/ep/my_expenses' client.get(url) assert client.status == 200 assert 'First Expense' in client.text
def test_employee_claims_process_accepted(client, web2py): """Check if a claim can be moved to accepted""" from populate_os_tables import populate_employee_claims url = '/default/user/login' client.get(url) assert client.status == 200 populate_employee_claims(web2py) # Check expenses display url = '/finance/employee_expenses_process_accepted' client.get(url) assert client.status == 200 assert web2py.db( web2py.db.employee_claims.Status == 'processed').count() == 2 assert web2py.db(web2py.db.invoices).count() >= 1 # assert ((web2py.db.invoices.Description == 'Expenses')) query = ((web2py.db.invoices.Description == 'Expenses')&\ (web2py.db.invoices.EmployeeClaim == True)) row = web2py.db(query).select().first() assert query InECquery = (web2py.db.invoices_employee_claims.invoices_id == row.id) InECrows = web2py.db(InECquery).select() for i, row in enumerate(InECrows): ECquery = (web2py.db.employee_claims.id == row.employee_claims_id) ECrow = web2py.db(ECquery).select().first() assert ((web2py.db.invoices_items.invoices_id == row.id) & \ (web2py.db.invoices_items.Description == ECrow.Description) & \ (web2py.db.invoices_items.Quantity == ECrow.Quantity) &\ (web2py.db.invoices_items.Price == ECrow.Amount * -1) &\ (web2py.db.invoices_items.TotalPrice == (ECrow.Amount * -1 * ECrow.Quantity)) ) assert ((web2py.db.invoices.Description == 'Expenses')) assert ((web2py.db.invoices_items.invoices_id==1)&\ (web2py.db.invoices_items.Description == 'Accepted Expense')&\ (web2py.db.invoices_items.TotalPrice == -15 ))
def test_employee_expenses_pending_page(client, web2py): """ Check pending page and if a pending claim is displayed """ from populate_os_tables import populate_employee_claims url = '/default/user/login' client.get(url) assert client.status == 200 populate_employee_claims(web2py) # Check expenses display url = '/finance/employee_expenses' client.get(url) assert client.status == 200 assert 'First Expense' in client.text
def test_employee_expenses_accepted_page(client, web2py): """ Check accepted page and if a accepted claim is displayed """ from populate_os_tables import populate_employee_claims url = '/default/user/login' client.get(url) assert client.status == 200 populate_employee_claims(web2py) # Check expenses display url = '/finance/employee_expenses_accepted' client.get(url) assert client.status == 200 assert 'Accepted Expense' in client.text
def test_my_expenses_delete(client, web2py): """ Can you delete a expense """ from populate_os_tables import populate_employee_claims url = '/default/user/login' client.get(url) assert client.status == 200 populate_employee_claims(web2py) claims_before_delete = web2py.db(web2py.db.employee_claims).count() # Check expenses display url = '/ep/my_expenses_expense_delete?ecID=1' client.get(url) assert client.status == 200 assert web2py.db( web2py.db.employee_claims).count() == claims_before_delete - 1