source: main/waeup.kofa/trunk/src/waeup/kofa/tests/test_schoolgrades.py @ 8986

Last change on this file since 8986 was 8057, checked in by Henrik Bettermann, 13 years ago

Adjust copyright header and propset svn:keywords.

  • Property svn:keywords set to Id
File size: 3.2 KB
RevLine 
[7794]1# Tests for schoolgrades module.
2import unittest
[7923]3from zope.component import getGlobalSiteManager
[7794]4from zope.interface.verify import verifyObject, verifyClass
[7923]5from zope.schema.interfaces import ConstraintNotSatisfied
6from waeup.kofa.interfaces import IResultEntry, IResultEntryField, IKofaUtils
[7811]7from waeup.kofa.schoolgrades import ResultEntry, ResultEntryField
[7923]8from waeup.kofa.utils.utils import KofaUtils
[7794]9
10class ResultEntryTests(unittest.TestCase):
11
[7922]12    def setUp(self):
13        self.utils = KofaUtils()
14        self.gsm = getGlobalSiteManager()
15        self.gsm.registerUtility(self.utils, IKofaUtils)
16        self.valid_subj = self.utils.EXAM_SUBJECTS_DICT.keys()[0]
17        self.valid_grade = self.utils.EXAM_GRADES[0][0]
18        return
19
20    def tearDown(self):
21        self.gsm.unregisterUtility(self.utils)
22        return
23
[7794]24    def test_ifaces(self):
25        # make sure we implement the promised interfaces.
26        obj = ResultEntry()
27        verifyObject(IResultEntry, obj)
28        verifyClass(IResultEntry, ResultEntry)
29        return
30
[7922]31    def test_init(self):
32        # we can pass initial values
33        item1 = ResultEntry()
34        item2 = ResultEntry(self.valid_subj, self.valid_grade)
35        self.assertTrue(item1.subject is None)
36        self.assertTrue(item1.grade is None)
37        self.assertEqual(item2.subject, self.valid_subj)
38        self.assertEqual(item2.grade, self.valid_grade)
39        return
40
41    def test_illegal_value(self):
42        # we do not accept values not stored in KofaUtils
43        item = ResultEntry()
44        self.assertRaises(
45            ConstraintNotSatisfied, ResultEntry, 'invalid', 'invalid')
46        self.assertRaises(
47            ConstraintNotSatisfied, ResultEntry, 'invalid')
48        self.assertRaises(
49            ConstraintNotSatisfied, setattr, item, 'subject', 'blah')
50        self.assertRaises(
51            ConstraintNotSatisfied, setattr, item, 'grade', 'blah')
52        return
53
54    def test_to_string(self):
55        # the string representation is handy for export
56        item1 = ResultEntry()
57        item2 = ResultEntry(self.valid_subj, self.valid_grade)
58        self.assertEqual(item1.to_string(), u"(None, None)")
59        self.assertEqual(item2.to_string(), u"('%s', '%s')" % (
60            self.valid_subj, self.valid_grade))
61        return
62
63    def test_from_string(self):
64        # we can create new result entries based on strings
65        myinput = u"(u'%s',u'%s')" % (
66            self.valid_subj, self.valid_grade)
67        item1 = ResultEntry.from_string(myinput)
68        item2 = ResultEntry.from_string(u"(u'',u'')")
69        item3 = ResultEntry.from_string(u"(None, None)")
70        self.assertEqual(item1.subject, self.valid_subj)
71        self.assertEqual(item1.grade, self.valid_grade)
72        self.assertTrue(item2.subject is None)
73        self.assertTrue(item2.grade is None)
74        self.assertTrue(item3.subject is None)
75        self.assertTrue(item3.grade is None)
76        return
77
[7794]78class ResultEntryFieldTests(unittest.TestCase):
79
80    def test_ifaces(self):
81        # make sure we implement the promised interfaces.
82        obj = ResultEntryField()
83        verifyObject(IResultEntryField, obj)
84        verifyClass(IResultEntryField, ResultEntryField)
85        return
[7922]86
Note: See TracBrowser for help on using the repository browser.