source: main/waeup.sirp/trunk/src/waeup/sirp/applicants/tests/test_interfaces.py @ 5806

Last change on this file since 5806 was 5755, checked in by uli, 14 years ago

Move iterface test from jambtables into applicants package.

File size: 3.1 KB
Line 
1##
2## test_interfaces.py
3## Login : <uli@pu.smp.net>
4## Started on  Tue Jan 25 17:09:46 2011 Uli Fouquet
5## $Id$
6##
7## Copyright (C) 2011 Uli Fouquet
8## This program is free software; you can redistribute it and/or modify
9## it under the terms of the GNU General Public License as published by
10## the Free Software Foundation; either version 2 of the License, or
11## (at your option) any later version.
12##
13## This program is distributed in the hope that it will be useful,
14## but WITHOUT ANY WARRANTY; without even the implied warranty of
15## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16## GNU General Public License for more details.
17##
18## You should have received a copy of the GNU General Public License
19## along with this program; if not, write to the Free Software
20## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21##
22"""
23Test components defined in interface module.
24"""
25import unittest
26from zc.sourcefactory.browser.source import FactoredTerms
27from zope.browser.interfaces import ITerms
28from zope.component import getMultiAdapter
29from zope.interface.verify import verifyClass, verifyObject
30from zope.publisher.browser import TestRequest
31from waeup.sirp.applicants import interfaces
32from waeup.sirp.applicants.interfaces import (
33    APPLICATION_CATEGORIES, application_categories_vocab, GenderSource,
34    )
35
36class ApplicationCategoriesTestCase(unittest.TestCase):
37
38    def setUp(self):
39        self.vocab = application_categories_vocab
40        return
41   
42    def test_vocabulary_len(self):
43        self.assertEqual(len(self.vocab), 5)
44        return
45
46    def test_vocabulary_items(self):
47        self.assertTrue('pde' in self.vocab)
48        return
49
50    def test_term_attributes(self):
51        # Check that each vocab entry provided value, token, and title.
52        term = self.vocab.getTermByToken('pde')
53        self.assertEqual(term.token, 'pde')
54        self.assertEqual(term.value, 'pde')
55        self.assertEqual(term.title, 'Direct Entry Screening Exam (PDE)')
56        return
57
58class InterfacesTest(unittest.TestCase):
59
60    def setUp(self):
61        self.source = GenderSource()
62        self.request = TestRequest()
63        self.terms = FactoredTerms(self.source, self.request)
64        return
65
66    def tearDown(self):
67        pass
68
69    def test_GenderSource_list(self):
70        result = list(self.source)
71        self.assertEqual(result, ['m', 'f'])
72
73    def test_GenderSource_term_male(self):
74        term = self.terms.getTerm('m')
75        assert term.title == 'male'
76        assert term.token == 'm'
77        assert term.value == 'm'
78
79    def test_GenderSource_term_female(self):
80        term = self.terms.getTerm('f')
81        assert term.title == 'female'
82        assert term.token == 'f'
83        assert term.value == 'f'
84
85    def test_GernderSource_term_invalid(self):
86        term_inv = self.terms.getTerm('Invalid')
87        assert term_inv.title is None
88        assert term_inv.token == 'i'
89
90def suite():
91    suite = unittest.TestSuite()
92    for testcase in [
93            ApplicationCategoriesTestCase,
94            InterfacesTest,
95            ]:
96        suite.addTests(unittest.TestLoader().loadTestsFromTestCase(testcase))
97    return suite
98
99test_suite = suite
100
101
Note: See TracBrowser for help on using the repository browser.