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
예제 #2
0
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
예제 #4
0
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
예제 #8
0
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