~aelkner/schooltool/schooltool.gradebook_column_preferences

« back to all changes in this revision

Viewing changes to src/schooltool/gradebook/generations/tests/__init__.py

  • Committer: Alan Elkner
  • Date: 2009-06-05 00:11:04 UTC
  • Revision ID: aelkner@gmail.com-20090605001104-j5ojo4k16m7rwn8a
created generations package
first evolve script migrates global discrete score systems to site manager

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
"""
 
2
Tests for generation scripts.
 
3
"""
 
4
 
 
5
from persistent.interfaces import IPersistent
 
6
 
 
7
from zope.app.keyreference.interfaces import IKeyReference
 
8
from zope.app.publication.zopepublication import ZopePublication
 
9
from zope.app.testing.setup import setUpAnnotations
 
10
from zope.component import provideAdapter
 
11
from zope.interface import implements
 
12
 
 
13
from schooltool.app.app import SchoolToolApplication
 
14
from schooltool.app.interfaces import ISchoolToolApplication
 
15
from schooltool.course.interfaces import ISection
 
16
from schooltool.gradebook.activity import getSectionActivities
 
17
from schooltool.gradebook.interfaces import IGradebookRoot, IActivities
 
18
from schooltool.gradebook.gradebook_init import getGradebookRoot
 
19
from schooltool.requirement.evaluation import getEvaluations
 
20
from schooltool.requirement.interfaces import IEvaluations
 
21
from schooltool.requirement.interfaces import IHaveEvaluations
 
22
from schooltool.requirement.scoresystem import ScoreSystemsProxy
 
23
 
 
24
 
 
25
class ContextStub(object):
 
26
    """Stub for the context argument passed to evolve scripts.
 
27
 
 
28
        >>> from zope.app.zopeappgenerations import getRootFolder
 
29
        >>> context = ContextStub()
 
30
        >>> getRootFolder(context) is context.root_folder
 
31
        True
 
32
    """
 
33
 
 
34
    class ConnectionStub(object):
 
35
        def __init__(self, root_folder):
 
36
            self.root_folder = root_folder
 
37
        def root(self):
 
38
            return {ZopePublication.root_name: self.root_folder}
 
39
 
 
40
    def __init__(self):
 
41
        self.root_folder = SchoolToolApplication()
 
42
        self.connection = self.ConnectionStub(self.root_folder)
 
43
 
 
44
 
 
45
_d = {}
 
46
 
 
47
class StupidKeyReference(object):
 
48
    implements(IKeyReference)
 
49
    key_type_id = 'StupidKeyReference'
 
50
    def __init__(self, ob):
 
51
        global _d
 
52
        self.id = id(ob)
 
53
        _d[self.id] = ob
 
54
    def __call__(self):
 
55
        return _d[self.id]
 
56
    def __hash__(self):
 
57
        return self.id
 
58
    def __cmp__(self, other):
 
59
        return cmp(hash(self), hash(other))
 
60
 
 
61
 
 
62
def provideAdapters():
 
63
    setUpAnnotations()
 
64
    provideAdapter(StupidKeyReference, [IPersistent], IKeyReference)
 
65
    provideAdapter(ScoreSystemsProxy)
 
66
    provideAdapter(getGradebookRoot, adapts=(ISchoolToolApplication,), 
 
67
                                     provides=IGradebookRoot)
 
68
    provideAdapter(getSectionActivities, adapts=(ISection,), 
 
69
                                         provides=IActivities)
 
70
    provideAdapter(getEvaluations, adapts=(IHaveEvaluations,), 
 
71
                                   provides=IEvaluations)
 
72