1  from openid import kvform 
  2  from openid import oidutil 
  3  import unittest 
  4   
  7          return '%s test for %r' % (self.__class__.__name__, self.kvform) 
   8   
  9 -    def log(self, message, unused_priority=None): 
  11   
 13          self.failUnlessEqual(num_warnings, len(self.warnings), repr(self.warnings)) 
  14   
 21   
  24   
 27          unittest.TestCase.__init__(self) 
 28          self.kvform = kv 
 29          self.dict = dct 
 30          self.expected_warnings = warnings 
  31   
  47   
 49 -    def __init__(self, seq, kv, expected_warnings): 
  50          unittest.TestCase.__init__(self) 
 51          self.kvform = kv 
 52          self.seq = seq 
 53          self.expected_warnings = expected_warnings 
  54   
 56          """Create a new sequence by stripping whitespace from start 
 57          and end of each value of each pair""" 
 58          clean = [] 
 59          for k, v in self.seq: 
 60              if type(k) is str: 
 61                  k = k.decode('utf8') 
 62              if type(v) is str: 
 63                  v = v.decode('utf8') 
 64              clean.append((k.strip(), v.strip())) 
 65          return clean 
  66   
 68           
 69          actual = kvform.seqToKV(self.seq) 
 70          self.failUnlessEqual(self.kvform, actual) 
 71          self.failUnless(type(actual) is str) 
 72   
 73           
 74           
 75           
 76          seq = kvform.kvToSeq(actual) 
 77          clean_seq = self.cleanSeq(seq) 
 78   
 79          self.failUnlessEqual(seq, clean_seq) 
 80          self.checkWarnings(self.expected_warnings) 
   81   
 82  kvdict_cases = [ 
 83       
 84      ('', {}, 0), 
 85      ('college:harvey mudd\n', {'college':'harvey mudd'}, 0), 
 86      ('city:claremont\nstate:CA\n', 
 87       {'city':'claremont', 'state':'CA'}, 0), 
 88      ('is_valid:true\ninvalidate_handle:{HMAC-SHA1:2398410938412093}\n', 
 89       {'is_valid':'true', 
 90        'invalidate_handle':'{HMAC-SHA1:2398410938412093}'}, 0), 
 91   
 92       
 93      ('x\n', {}, 1), 
 94      ('x\nx\n', {}, 2), 
 95      ('East is least\n', {}, 1), 
 96   
 97       
 98      ('x\n\n', {}, 1), 
 99   
100       
101      (':\n', {'':''}, 1), 
102      (':missing key\n', {'':'missing key'}, 1), 
103   
104       
105      (' street:foothill blvd\n', {'street':'foothill blvd'}, 1), 
106      ('major: computer science\n', {'major':'computer science'}, 1), 
107      (' dorm : east \n', {'dorm':'east'}, 2), 
108   
109       
110      ('e^(i*pi)+1:0', {'e^(i*pi)+1':'0'}, 1), 
111      ('east:west\nnorth:south', {'east':'west', 'north':'south'}, 1), 
112      ] 
113   
114  kvseq_cases = [ 
115      ([], '', 0), 
116   
117       
118      ([(u'\u03bbx', u'x')], '\xce\xbbx:x\n', 0), 
119   
120       
121       
122      ([('\xce\xbbx', 'x')], '\xce\xbbx:x\n', 0), 
123   
124      ([('openid', 'useful'), ('a', 'b')], 'openid:useful\na:b\n', 0), 
125   
126       
127      ([(' openid', 'useful'), ('a', 'b')], ' openid:useful\na:b\n', 2), 
128   
129       
130      ([(' openid ', ' useful '), 
131        (' a ', ' b ')], ' openid : useful \n a : b \n', 8), 
132   
133       
134       
135      ([(' open id ', ' use ful '), 
136        (' a ', ' b ')], ' open id : use ful \n a : b \n', 8), 
137   
138      ([(u'foo', 'bar')], 'foo:bar\n', 0), 
139      ] 
140   
141  kvexc_cases = [ 
142      [('openid', 'use\nful')], 
143      [('open\nid', 'useful')], 
144      [('open\nid', 'use\nful')], 
145      [('open:id', 'useful')], 
146      [('foo', 'bar'), ('ba\n d', 'seed')], 
147      [('foo', 'bar'), ('bad:', 'seed')], 
148      ] 
149   
152          unittest.TestCase.__init__(self) 
153          self.seq = seq 
 154   
156          return 'KVExcTest for %r' % (self.seq,) 
 157   
 160   
168   
175