~menesis/ubuntu/precise/schooltool.lyceum.journal/precise

« back to all changes in this revision

Viewing changes to src/schooltool/lyceum/journal/ftests/consecutive_periods.txt

  • Committer: Bazaar Package Importer
  • Author(s): Gediminas Paulauskas
  • Date: 2011-02-24 17:01:22 UTC
  • Revision ID: james.westby@ubuntu.com-20110224170122-7nkdefrd25hkr413
Tags: upstream-0.7.1
ImportĀ upstreamĀ versionĀ 0.7.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Functional doctest for Section Journal with Consecutive Periods as One
 
2
======================================================================
 
3
 
 
4
Let's log in with the manager account:
 
5
 
 
6
    >>> from schooltool.lyceum.journal.ftests import printGradebookTable
 
7
    >>> manager = Browser('manager', 'schooltool')
 
8
 
 
9
Set up a basic school year:
 
10
 
 
11
    >>> manager.getLink('Manage').click()
 
12
    >>> manager.getLink('School Years').click()
 
13
    >>> manager.getLink('New School Year').click()
 
14
    >>> manager.getControl('Title').value = '2005'
 
15
    >>> manager.getControl('First day').value = '2005-09-01'
 
16
    >>> manager.getControl('Last day').value = '2006-07-31'
 
17
    >>> manager.getControl('Add').click()
 
18
 
 
19
Add some teachers:
 
20
 
 
21
    >>> from schooltool.basicperson.browser.ftests.setup import addPerson
 
22
    >>> addPerson('Pete', 'Teacher', username='pete', password='pwd', groups=['teachers'])
 
23
 
 
24
A class:
 
25
 
 
26
    >>> manager.getLink('2005').click()
 
27
    >>> manager.getLink('Groups').click()
 
28
    >>> manager.getLink('New Group').click()
 
29
    >>> manager.getControl('Title').value = "2a"
 
30
    >>> manager.getControl('Add').click()
 
31
 
 
32
And some students:
 
33
 
 
34
    >>> addPerson('Frum', 'Student', username='frum', password='pwd', groups=['students', '2a'])
 
35
    >>> addPerson('Grum', 'Student', username='grum', password='pwd', groups=['students', '2a'])
 
36
 
 
37
Add a term:
 
38
 
 
39
    >>> manager.getLink('2005').click()
 
40
    >>> manager.getLink('Add a new term').click()
 
41
    >>> manager.getControl('Title').value = '2005 Fall 1'
 
42
    >>> manager.getControl('Start date').value = '2005-09-01'
 
43
    >>> manager.getControl('End date').value = '2005-10-31'
 
44
    >>> manager.getControl('Next').click()
 
45
    >>> manager.getControl('Saturday').click()
 
46
    >>> manager.getControl('Sunday').click()
 
47
    >>> manager.getControl('Add term').click()
 
48
 
 
49
Timetable schema:
 
50
 
 
51
    >>> manager.getLink('2005').click()
 
52
    >>> manager.getLink('School Timetables').click()
 
53
    >>> manager.getLink('New Timetable').click()
 
54
    >>> manager.getLink('simple weekly timetable schema').click()
 
55
 
 
56
    >>> manager.getControl(name='field.period_name_1').value = 'A'
 
57
    >>> manager.getControl(name='field.period_start_1').value = '9:00'
 
58
    >>> manager.getControl(name='field.period_finish_1').value = '10:00'
 
59
 
 
60
    >>> manager.getControl(name='field.period_name_2').value = 'B'
 
61
    >>> manager.getControl(name='field.period_start_2').value = '10:30'
 
62
    >>> manager.getControl(name='field.period_finish_2').value = '11:30'
 
63
 
 
64
    >>> manager.getControl('Create').click()
 
65
 
 
66
A couple of sections:
 
67
 
 
68
    >>> from schooltool.app.browser.ftests.setup import addSection
 
69
    >>> from schooltool.app.browser.ftests.setup import addCourse
 
70
    >>> addCourse("History", "2005")
 
71
 
 
72
    >>> addSection("History", "2005", "2005 Fall 1",
 
73
    ...            title="History (1a)",
 
74
    ...            instructors=['Pete'],
 
75
    ...            members=['Grum', 'Frum'])
 
76
 
 
77
    >>> addSection("History", "2005", "2005 Fall 1",
 
78
    ...            title="History (1a)",
 
79
    ...            instructors=['Pete'],
 
80
    ...            members=['Grum', 'Frum'])
 
81
 
 
82
Let's schedule the sections:
 
83
 
 
84
    >>> manager.getLink('2005').click()
 
85
    >>> manager.getLink('2005 Fall 1').click()
 
86
    >>> manager.getLink('Sections').click()
 
87
    >>> manager.getLink(url='sections/1').click()
 
88
    >>> manager.getLink('Schedule').click()
 
89
    >>> manager.getLink('Add Timetable').click()
 
90
    >>> manager.getControl('Add').click()
 
91
    >>> manager.getControl(name='Tuesday.A').value = True
 
92
    >>> manager.getControl(name='Tuesday.B').value = True
 
93
    >>> manager.getControl(name='Wednesday.A').value = True
 
94
    >>> manager.getControl('Save').click()
 
95
 
 
96
Let's log in with the teacher account:
 
97
 
 
98
    >>> teacher = Browser('pete', 'pwd')
 
99
 
 
100
Since we haven't marked the timetable for treating consecutive periods as one
 
101
period, we will note that all periods will show up in the section journal,
 
102
including Tuesday B which comes right after Tuesday A.  This is the default
 
103
behavior:
 
104
 
 
105
    >>> teacher.open('http://localhost/persons/frum/calendar/2005-09-06')
 
106
    >>> teacher.getLink('Journal', index=1).click()
 
107
    >>> teacher.getLink('Frum').click()
 
108
    >>> printGradebookTable(teacher.contents)
 
109
    +-----+------------+-----------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+----------+---------+
 
110
    | Nr. | First Name | Last Name | 06      | 06 B    | 07 A    | 13 A    | 13 B    | 14 A    | 20 A    | 20 B    | 21 A    | 27 A    | 27 B    | 28 A    | Average | Absences | Tardies |
 
111
    +-----+------------+-----------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+----------+---------+
 
112
    | 1   | Frum       | Student   | [_____] | [_____] | [_____] | [_____] | [_____] | [_____] | [_____] | [_____] | [_____] | [_____] | [_____] | [_____] |         |          |         |
 
113
    | 2   | Grum       | Student   | [_____] |         |         |         |         |         |         |         |         |         |         |         |         |          |         |
 
114
    +-----+------------+-----------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+----------+---------+
 
115
 
 
116
Let's change the section schedule to have that flag set to True:
 
117
 
 
118
    >>> manager.getLink('2005').click()
 
119
    >>> manager.getLink('2005 Fall 1').click()
 
120
    >>> manager.getLink('Sections').click()
 
121
    >>> manager.getLink(url='sections/1').click()
 
122
    >>> manager.getLink('Schedule').click()
 
123
    >>> manager.getLink('edit periods').click()
 
124
    >>> collapse_periods = manager.getControl(
 
125
    ...     name='form.widgets.consecutive_periods_as_one:list')
 
126
    >>> collapse_periods.value = ['true']
 
127
    >>> manager.getControl('Save').click()
 
128
 
 
129
Now when we look at the section journal, we note that Tuesday B is gone:
 
130
 
 
131
    >>> teacher.open('http://localhost/persons/frum/calendar/2005-09-06')
 
132
    >>> teacher.getLink('Journal', index=1).click()
 
133
    >>> teacher.getLink('Frum').click()
 
134
    >>> printGradebookTable(teacher.contents)
 
135
    +-----+------------+-----------+---------+---------+---------+---------+---------+---------+---------+---------+---------+----------+---------+
 
136
    | Nr. | First Name | Last Name | 06      | 07 A    | 13 A    | 14 A    | 20 A    | 21 A    | 27 A    | 28 A    | Average | Absences | Tardies |
 
137
    +-----+------------+-----------+---------+---------+---------+---------+---------+---------+---------+---------+---------+----------+---------+
 
138
    | 1   | Frum       | Student   | [_____] | [_____] | [_____] | [_____] | [_____] | [_____] | [_____] | [_____] |         |          |         |
 
139
    | 2   | Grum       | Student   | [_____] |         |         |         |         |         |         |         |         |          |         |
 
140
    +-----+------------+-----------+---------+---------+---------+---------+---------+---------+---------+---------+---------+----------+---------+
 
141
 
 
142
When we mark Frum as if he has skipped some lessons, we see that the view
 
143
accepts the data and returns it to us:
 
144
 
 
145
    >>> cells = analyze.queryHTML('//table[@class="data"]//input[@type="text"]/@name', teacher.contents)
 
146
    >>> for i in range(8):
 
147
    ...     teacher.getControl(name=cells[i]).value = 'n'
 
148
    >>> teacher.getControl('Update').click()
 
149
    >>> printGradebookTable(teacher.contents)
 
150
    +-----+------------+-----------+---------+---------+---------+---------+---------+---------+---------+---------+---------+----------+---------+
 
151
    | Nr. | First Name | Last Name | 06      | 07 A    | 13 A    | 14 A    | 20 A    | 21 A    | 27 A    | 28 A    | Average | Absences | Tardies |
 
152
    +-----+------------+-----------+---------+---------+---------+---------+---------+---------+---------+---------+---------+----------+---------+
 
153
    | 1   | Frum       | Student   | [a____] | [a____] | [a____] | [a____] | [a____] | [a____] | [a____] | [a____] |         | 8        |         |
 
154
    | 2   | Grum       | Student   | [_____] |         |         |         |         |         |         |         |         |          |         |
 
155
    +-----+------------+-----------+---------+---------+---------+---------+---------+---------+---------+---------+---------+----------+---------+
 
156