3 from openid
.server
.trustroot
import TrustRoot
5 class _ParseTest(unittest
.TestCase
):
6 def __init__(self
, sanity
, desc
, case
):
7 unittest
.TestCase
.__init
__(self
)
8 self
.desc
= desc
+ ': ' + repr(case
)
12 def shortDescription(self
):
16 tr
= TrustRoot
.parse(self
.case
)
17 if self
.sanity
== 'sane':
18 assert tr
.isSane(), self
.case
19 elif self
.sanity
== 'insane':
20 assert not tr
.isSane(), self
.case
24 class _MatchTest(unittest
.TestCase
):
25 def __init__(self
, match
, desc
, line
):
26 unittest
.TestCase
.__init
__(self
)
28 self
.desc
= desc
+ ': ' + repr(tr
) + ' ' + repr(rt
)
33 def shortDescription(self
):
37 tr
= TrustRoot
.parse(self
.tr
)
38 self
.failIf(tr
is None, self
.tr
)
40 match
= tr
.validateURL(self
.rt
)
46 def getTests(t
, grps
, head
, dat
):
49 gdat
= map(str.strip
, dat
.split('-' * 40 + '\n'))
51 assert len(gdat
) == (len(grps
) * 2 + 1), (gdat
, grps
)
54 n
, desc
= gdat
[i
].split(': ')
55 cases
= gdat
[i
+ 1].split('\n')
56 assert len(cases
) == int(n
)
58 tests
.append(t(x
, top
+ ' - ' + desc
, case
))
63 parts
= map(str.strip
, data
.split('=' * 40 + '\n'))
65 _
, ph
, pdat
, mh
, mdat
= parts
68 tests
.extend(getTests(_ParseTest
, ['bad', 'insane', 'sane'], ph
, pdat
))
69 tests
.extend(getTests(_MatchTest
, [1, 0], mh
, mdat
))
73 here
= os
.path
.dirname(os
.path
.abspath(__file__
))
74 test_data_file_name
= os
.path
.join(here
, 'data', 'trustroot.txt')
75 test_data_file
= file(test_data_file_name
)
76 test_data
= test_data_file
.read()
77 test_data_file
.close()
79 tests
= parseTests(test_data
)
80 return unittest
.TestSuite(tests
)
82 if __name__
== '__main__':
84 runner
= unittest
.TextTestRunner()