Report Request Views
--------------------

Log in as manager:

    >>> manager = Browser('manager', 'schooltool')

We'll set up a default school with a single section:

    >>> from schooltool.app.browser.ftests import setup
    >>> setup.setUpBasicSchool()
    >>> setup.addCourse('Math I', '2005-2006')
    >>> setup.addSection('Math I', '2005-2006', 'Fall',
    ...                  instructors=[],
    ...                  members=[])

We'll go to the report reference view to make sure our registered report
adapters are reflected there.

    >>> manager.getLink('Manage').click()
    >>> manager.getLink('Reports').click()
    >>> report_names =  manager.queryHTML('//table//tr/td[2]/a/text()')
    >>> 'Student Detail Report' in report_names
    True
    >>> 'Student Report Card' in report_names
    True
    >>> 'Student Detail Report by Group' in report_names
    True
    >>> 'Student Report Card by Group' in report_names
    True
    >>> 'Failures by Term' in report_names
    True

Journal reports are not available.

    >>> 'Absences by Section' in report_names
    False
    >>> 'Absences By Day' in report_names
    False

Now we'll visit the various context types and see that the registered report
request adapters are reflected in the report request views.

    >>> manager.getLink('Manage').click()
    >>> manager.getLink('Persons').click()
    >>> manager.getLink('Administrator').click()
    >>> manager.getLink('Reports').click()
    >>> report_names =  manager.queryHTML('//li/a/text()')
    >>> 'Student Report Card' in report_names
    True
    >>> 'Student Detail Report' in report_names
    True

    >>> manager.getLink('2005-2006').click()
    >>> manager.getLink('Groups').click()
    >>> manager.getLink('Students').click()
    >>> manager.getLink('Reports').click()
    >>> report_names =  manager.queryHTML('//li/a/text()')
    >>> 'Student Report Card by Group' in report_names
    True
    >>> 'Student Detail Report by Group' in report_names
    True

    >>> manager.getLink('2005-2006').click()
    >>> manager.getLink('Fall').click()
    >>> manager.getLink('Reports').click()
    >>> report_names =  manager.queryHTML('//li/a/text()')
    >>> 'Failures by Term' in report_names
    True

