forked from ScoDoc/DocScoDoc
67 lines
2.2 KiB
Python
Executable File
67 lines
2.2 KiB
Python
Executable File
#!/opt/zope213/bin/python
|
|
# -*- mode: python -*-
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""Essais de changements intensifs des notes
|
|
(pour faire des tests en parallele)
|
|
|
|
se connecte, accede a un semestre puis a un module,
|
|
et modifie les notes existantes dans la premiere evaluation
|
|
|
|
ajoute puis soustrait 1 aux notes valides, N fois
|
|
|
|
"""
|
|
import time
|
|
|
|
from common import *
|
|
# -> ici on est sur la page d'accueil du departement !
|
|
|
|
links = browser.find_link_by_partial_text('DUT')
|
|
links[0].click() # va sur le 1er semestre de DUT trouve
|
|
|
|
# ---- Tableau bord semestre
|
|
print browser.url
|
|
# va dans module M1101 saisir des notes (dans la p1ere evaluation):
|
|
browser.find_link_by_partial_text('M1101').first.click()
|
|
browser.find_link_by_partial_text('Saisir notes').first.click()
|
|
|
|
# ---- Ici c'est complique car le bouton submit est disabled
|
|
# on construit l'url a la main:
|
|
url = browser.find_by_id('gr')[0]["action"]
|
|
evaluation_id = browser.find_by_name('evaluation_id').value
|
|
group_id = re.search( r'value="(.*?)".*?tous', browser.html ).group(1)
|
|
url_form = urlparse.urljoin(url, 'notes_evaluation_formnotes?evaluation_id='+evaluation_id+'&group_ids:list='+group_id+'¬e_method=form')
|
|
|
|
|
|
# ---- Ajoute une constante aux notes valides:
|
|
# le browser doit etre sur le formulaire saisie note
|
|
def add_to_notes(increment):
|
|
etudids = re.findall( r'name="note_(.*?)"', browser.html )[1:]
|
|
note_max = float(re.search( r'notes sur ([0-9]+?)</span>\)', browser.html ).group(1))
|
|
print 'add_to_notes: %d etudiants' % len(etudids)
|
|
for etudid in etudids:
|
|
# essaie d'ajouter 1 a la note !
|
|
old_val = browser.find_by_name('note_%s' % etudid).value
|
|
try:
|
|
val = max(0,min(float(old_val) + increment, note_max))
|
|
browser.fill('note_%s'%etudid, str(val))
|
|
print etudid, old_val, '->', val
|
|
except:
|
|
pass
|
|
|
|
# ---- Validation formulaire saisie notes:
|
|
browser.find_by_id('tf_submit').click()
|
|
browser.find_by_id('tf_submit').click()
|
|
|
|
|
|
for i in range(10):
|
|
browser.visit(url_form) # va sur form saisie notes
|
|
add_to_notes(1)
|
|
#time.sleep(1)
|
|
browser.visit(url_form) # va sur form saisie notes
|
|
add_to_notes(-1)
|
|
#time.sleep(1)
|
|
|
|
t1 = time.time()
|
|
print 'done in %gs' % (t1-t0)
|