1
Last visited section tests
2
--------------------------
4
The gradebook remembers where a teacher or student was last time they were
5
in the gradebook, so we will test this.
9
>>> manager = Browser('manager', 'schooltool')
11
Now, set up a school year (2005-2006) with two terms (Fall and
14
>>> from schooltool.app.browser.ftests import setup
15
>>> setup.setUpBasicSchool()
19
>>> setup.addCourse('Physics I', '2005-2006')
23
>>> from schooltool.basicperson.browser.ftests.setup import addPerson
24
>>> addPerson('Paul', 'Cardune', 'paul', 'pwd', browser=manager)
25
>>> addPerson('Tom', 'Hoffman', 'tom', 'pwd', browser=manager)
26
>>> addPerson('Claudia', 'Richter', 'claudia', 'pwd', browser=manager)
27
>>> addPerson('Stephan', 'Richter', 'stephan', 'pwd', browser=manager)
29
Set up one section with instructor and students for each term:
31
>>> setup.addSection('Physics I', '2005-2006', 'Fall',
32
... instructors=['Stephan'],
33
... members=['Tom', 'Claudia', 'Paul'])
34
>>> setup.addSection('Physics I', '2005-2006', 'Spring',
35
... instructors=['Stephan'],
36
... members=['Tom', 'Claudia', 'Paul'])
40
>>> stephan = Browser('stephan', 'pwd')
42
Add a couple of activities to the default worksheet:
44
>>> stephan.getLink('Gradebook').click()
46
>>> stephan.printQuery('//select[@name="currentTerm"]/option[@selected="selected"]/text()')
48
>>> stephan.printQuery('//select[@name="currentSection"]/option[@selected="selected"]/text()')
49
Physics I - Physics I (1)
51
>>> stephan.getLink('New Activity').click()
52
>>> stephan.getControl('Title').value = 'HW 1'
53
>>> stephan.getControl('Description').value = 'Homework 1'
54
>>> stephan.getControl('Category').value = ['assignment']
55
>>> stephan.getControl('Maximum').value = '50'
56
>>> stephan.getControl('Add').click()
58
>>> stephan.getLink('New Activity').click()
59
>>> stephan.getControl('Title').value = 'Quiz'
60
>>> stephan.getControl('Description').value = 'Week 1 Pop Quiz'
61
>>> stephan.getControl('Category').value = ['exam']
62
>>> stephan.getControl('Add').click()
66
>>> stephan.getControl(name='Activity_paul').value = '40'
67
>>> stephan.getControl(name='Activity_tom').value = '48'
68
>>> stephan.getControl(name='Activity_claudia').value = '45'
70
>>> stephan.getControl(name='Activity-2_paul').value = '90'
71
>>> stephan.getControl(name='Activity-2_tom').value = '88'
72
>>> stephan.getControl(name='Activity-2_claudia').value = '29'
74
>>> stephan.getControl('Save').click()
77
'http://localhost/schoolyears/2005-2006/fall/sections/1/activities/Worksheet/gradebook'
79
Change to the other section and add some activities and grades:
81
>>> stephan.open(url+'?currentTerm=2005-2006-.spring-')
82
>>> stephan.printQuery('//select[@name="currentTerm"]/option[@selected="selected"]/text()')
84
>>> stephan.printQuery('//select[@name="currentSection"]/option[@selected="selected"]/text()')
85
Physics I - Physics I (1)
87
>>> stephan.getLink('New Activity').click()
88
>>> stephan.getControl('Title').value = 'HW 1'
89
>>> stephan.getControl('Description').value = 'Homework 2'
90
>>> stephan.getControl('Category').value = ['assignment']
91
>>> stephan.getControl('Add').click()
93
>>> stephan.getLink('New Activity').click()
94
>>> stephan.getControl('Title').value = 'Quiz'
95
>>> stephan.getControl('Description').value = 'Spring Pop Quiz'
96
>>> stephan.getControl('Category').value = ['exam']
97
>>> stephan.getControl('Add').click()
99
>>> stephan.getControl(name='Activity_paul').value = '80'
100
>>> stephan.getControl(name='Activity_tom').value = '95'
101
>>> stephan.getControl(name='Activity_claudia').value = '85'
103
>>> stephan.getControl(name='Activity-2_paul').value = '90'
104
>>> stephan.getControl(name='Activity-2_tom').value = '88'
105
>>> stephan.getControl(name='Activity-2_claudia').value = '79'
107
>>> stephan.getControl('Save').click()
110
'http://localhost/schoolyears/2005-2006/spring/sections/1/activities/Worksheet/gradebook'
111
>>> stephan.getLink('Gradebook').click()
113
'http://localhost/schoolyears/2005-2006/spring/sections/1/activities/Worksheet/gradebook'
115
Log in as a student and change to the spring section:
117
>>> claudia = Browser('claudia', 'pwd')
118
>>> claudia.getLink('Gradebook').click()
119
>>> url = claudia.url
121
'http://localhost/schoolyears/2005-2006/fall/sections/1/activities/Worksheet/mygrades'
122
>>> claudia.printQuery('//table[@class="student_gradebook"]/tr[1]/td')
123
<td colspan="2" class="odd student_cell">
124
<div> Ave.: 49.3%</div>
127
>>> claudia.open(url+'?currentTerm=2005-2006-.spring-')
129
'http://localhost/schoolyears/2005-2006/spring/sections/1/activities/Worksheet/mygrades'
130
>>> claudia.printQuery('//table[@class="student_gradebook"]/tr[1]/td')
131
<td colspan="2" class="odd student_cell">
132
<div> Ave.: 82.0%</div>
134
>>> claudia.getLink('Gradebook').click()
136
'http://localhost/schoolyears/2005-2006/spring/sections/1/activities/Worksheet/mygrades'
138
We need to make sure that we can handle the case where the last visited section
139
was since deleted. First we'll delete the spring section of Physics.
141
>>> manager.getLink('2005-2006').click()
142
>>> manager.getLink('Spring').click()
143
>>> manager.getLink('Sections').click()
144
>>> manager.getControl(name='delete.1').value = True
145
>>> manager.getControl('Delete').click()
146
>>> manager.getControl('Confirm').click()
148
Now when Stephan or Claudia hit the Gradebook tab, they get redirected to the
149
fall term for the Physics section since the spring section is gone.
151
>>> stephan.getLink('Gradebook').click()
153
'http://localhost/schoolyears/2005-2006/fall/sections/1/activities/Worksheet/gradebook'
155
>>> claudia.getLink('Gradebook').click()
157
'http://localhost/schoolyears/2005-2006/fall/sections/1/activities/Worksheet/mygrades'