1  import unittest 
  2   
  4   
  8   
 13   
 15          predicate = self._getFUT() 
 16          environ = {'REMOTE_USER': 'fred'} 
 17          self.failUnless(predicate(environ)) 
  18   
 20          predicate = self._getFUT() 
 21          environ = {'repoze.who.identity': {'login': 'fred'}} 
 22          self.failUnless(predicate(environ)) 
   23   
 25   
 29   
 31          from repoze.who.restrict import authenticated_predicate 
 32          fut = self._getFUT() 
 33          app = DummyApp() 
 34   
 35          filter = fut(app, {}, enabled=True) 
 36   
 37          self.failUnless(filter.app is app) 
 38          self.failUnless(filter.enabled) 
 39          predicate = filter.predicate 
 40          self.failUnless(predicate({'REMOTE_USER': 'fred'})) 
 41          self.failUnless(predicate({'repoze.who.identity': {'login': 'fred'}})) 
   42   
 44   
 48   
 53   
 55          _tested = [] 
 56          def _factory(): 
 57              def _predicate(env): 
 58                  _tested.append(env) 
 59                  return False 
  60              return _predicate 
  61   
 62          _started = [] 
 63          def _start_response(status, headers): 
 64              _started.append((status, headers)) 
 65          environ = {'testing': True} 
 66   
 67          restrict = self._makeOne(predicate=_factory, enabled=False) 
 68          restrict(environ, _start_response) 
 69   
 70          self.assertEqual(len(_tested), 0) 
 71          self.assertEqual(len(_started), 0) 
 72          self.assertEqual(restrict.app.environ, environ) 
 73   
 75          _tested = [] 
 76          def _factory(): 
 77              def _predicate(env): 
 78                  _tested.append(env) 
 79                  return False 
  80              return _predicate 
 81   
 82          _started = [] 
 83          def _start_response(status, headers): 
 84              _started.append((status, headers)) 
 85          environ = {'testing': True} 
 86   
 87          restrict = self._makeOne(predicate=_factory) 
 88          restrict(environ, _start_response) 
 89   
 90          self.assertEqual(len(_tested), 1) 
 91          self.assertEqual(len(_started), 1, _started) 
 92          self.assertEqual(_started[0][0], '401 Unauthorized') 
 93          self.assertEqual(restrict.app.environ, None) 
 94   
 96          _tested = [] 
 97          def _factory(): 
 98              def _predicate(env): 
 99                  _tested.append(env) 
100                  return True 
 101              return _predicate 
102   
103          _started = [] 
104          def _start_response(status, headers): 
105              _started.append((status, headers)) 
106          environ = {'testing': True, 'REMOTE_USER': 'fred'} 
107   
108          restrict = self._makeOne(predicate=_factory) 
109          restrict(environ, _start_response) 
110   
111          self.assertEqual(len(_tested), 1) 
112          self.assertEqual(len(_started), 0) 
113          self.assertEqual(restrict.app.environ, environ) 
114   
116   
120   
126          def _factory(): 
127              return _predicate 
 128   
129          filter = fut(app, {}, predicate=_factory) 
130   
131          self.failUnless(filter.app is app) 
132          self.failUnless(filter.predicate is _predicate) 
133          self.failUnless(filter.enabled) 
134   
136          fut = self._getFUT() 
137          app = DummyApp() 
138   
139          filter = fut(app, {}, predicate=DummyPredicate, enabled=False, 
140                       foo='Foo') 
141   
142          self.failUnless(filter.app is app) 
143          self.failUnless(isinstance(filter.predicate, DummyPredicate)) 
144          self.assertEqual(filter.predicate.foo, 'Foo') 
145          self.failIf(filter.enabled) 
 146   
148          fut = self._getFUT() 
149          app = DummyApp() 
150   
151          filter = fut(app, {}, 
152                       predicate='repoze.who.tests.test_restrict:DummyPredicate', 
153                       enabled=True, foo='Foo') 
154   
155          self.failUnless(filter.app is app) 
156          self.failUnless(isinstance(filter.predicate, DummyPredicate)) 
157          self.assertEqual(filter.predicate.foo, 'Foo') 
158          self.failUnless(filter.enabled) 
 159   
160   
166   
169          self.__dict__.update(kw) 
  172