def test_teachers_payment_attendance_lists_rates_delete(client, web2py):
    """
    Check if the teachers_payment_attendance_lists delete permission works
    """
    setup_permission_tests(web2py)
    populate_teachers_payment_attendance_lists(web2py)

    web2py.auth.add_permission(200, 'read',
                               'teachers_payment_attendance_lists_rates', 0)
    web2py.auth.add_permission(200, 'create',
                               'teachers_payment_attendance_lists_rates', 0)
    web2py.db.commit()

    url = '/teachers/payment_attendance_list_rates?tpalID=1'
    client.get(url)
    assert client.status == 200
    assert not 'fa-times' in client.text

    # grant permission and check again
    web2py.auth.add_permission(200, 'delete',
                               'teachers_payment_attendance_lists_rates', 0)
    web2py.db.commit()

    client.get(url)
    assert client.status == 200

    assert 'fa-times' in client.text
def test_payment_attendance_list_archive(client, web2py):
    """
    Is the list showing?
    """
    populate_teachers_payment_attendance_lists(web2py)

    url = '/teachers/payment_attendance_list_archive?tpalID=1'
    client.get(url)
    assert client.status == 200

    tpal = web2py.db.teachers_payment_attendance_lists(1)
    assert tpal.Archived == True
def test_payment_attendance_list_rates(client, web2py):
    """
    Is the list showing?
    """
    populate_teachers_payment_attendance_lists(web2py)

    url = '/teachers/payment_attendance_list_rates?tpalID=1'
    client.get(url)
    assert client.status == 200

    tpalr = web2py.db.teachers_payment_attendance_lists_rates(1)
    assert format(tpalr.Rate, '.2f') in client.text
def test_payment_attendance_lists(client, web2py):
    """
    Is the list showing?
    """
    populate_teachers_payment_attendance_lists(web2py)

    url = '/teachers/payment_attendance_lists'
    client.get(url)
    assert client.status == 200

    tpal = web2py.db.teachers_payment_attendance_lists(1)
    assert tpal.Name in client.text
def test_payment_attendance_list_rate_delete(client, web2py):
    """
    Can we delete a rate from a list?
    """
    populate_teachers_payment_attendance_lists(web2py)

    query = (web2py.db.teachers_payment_attendance_lists_rates.teachers_payment_attendance_lists_id == 1)
    count = web2py.db(query).count()

    url = "/teachers/payment_attendance_list_rate_delete?tpalID=1&tpalrID=1"
    client.get(url)
    assert client.status == 200

    count_after = web2py.db(query).count()
    assert count_after == count - 1
def test_payment_attendance_list_edit(client, web2py):
    """
    Can we edit a list?
    """
    populate_teachers_payment_attendance_lists(web2py)

    url = '/teachers/payment_attendance_list_edit?tpalID=1'
    client.get(url)
    assert client.status == 200

    data = {"id": 1, "Name": "Big list", "tax_rates_id": 1}

    client.post(url, data=data)
    assert client.status == 200

    tpal = web2py.db.teachers_payment_attendance_lists(1)
    assert data['Name'] == tpal.Name
def test_payment_attendance_list_rate_edit(client, web2py):
    """
    Can we add a rate to the list?
    """
    populate_teachers_payment_attendance_lists(web2py)

    url = "/teachers/payment_attendance_list_rate_edit?tpalID=1&tpalrID=1"
    client.get(url)
    assert client.status == 200

    data = {'id': 1, 'Rate': 20.5}

    client.post(url, data=data)
    assert client.status == 200

    tpalr = web2py.db.teachers_payment_attendance_lists_rates(1)
    assert tpalr.Rate == data['Rate']
def test_payment_attendance_list_rates_add_increase_attendanceNR(
        client, web2py):
    """
    Can we add a rate to the list?
    """
    populate_teachers_payment_attendance_lists(web2py)

    query = (web2py.db.teachers_payment_attendance_lists_rates.
             teachers_payment_attendance_lists_id == 1)
    count = web2py.db(query).count()

    url = "/teachers/payment_attendance_list_rates?tpalID=1"
    client.get(url)
    assert client.status == 200

    data = {'Rate': 20.5}

    client.post(url, data=data)
    assert client.status == 200

    new_count = count_rates = web2py.db(query).count()
    new_id = count + 1
    tpalr = web2py.db.teachers_payment_attendance_lists_rates(new_id)
    assert tpalr.AttendanceCount == new_count