def test_verify_nonsense(self): """ Hashing a value of the wrong type fails with ``TypeError``. """ reactor = SynchronousReactorThreads() worker, perform = createMemoryWorker() ctx = TxCryptContext(CryptContext(schemes=['plaintext']), reactor, worker) self.assertThat(ctx.hash(42), performed(perform, failed_with(IsInstance(TypeError))))
def deterministicPool(): """ Create a deterministic threadpool. @return: 2-tuple of L{ThreadPool}, 0-argument C{work} callable; when C{work} is called, do the work. """ worker, doer = createMemoryWorker() return (DeterministicThreadPool( Team(LockWorker(Lock(), local()), (lambda: worker), lambda: None)), doer)
def _responder_factory(self, zone_name=u'example.com'): responder = LibcloudDNSResponder.create( reactor=SynchronousReactorThreads(), driver_name='dummy', username='******', password='******', zone_name=zone_name, settle_delay=0.0) if zone_name is not None: responder._driver.create_zone(zone_name) responder._thread_pool, self._perform = createMemoryWorker() return responder
def deterministicReactorThreads(): """ Create a deterministic L{IReactorThreads} @return: a 2-tuple consisting of an L{IReactorThreads}-like object and a 0-argument callable that will perform one unit of work invoked via that object's C{callFromThread} method. """ worker, doer = createMemoryWorker() class CFT: def callFromThread(self, f, *a, **k): worker.do(lambda: f(*a, **k)) return CFT(), doer
def deterministicReactorThreads(): """ Create a deterministic L{IReactorThreads} @return: a 2-tuple consisting of an L{IReactorThreads}-like object and a 0-argument callable that will perform one unit of work invoked via that object's C{callFromThread} method. """ worker, doer = createMemoryWorker() class CFT(object): def callFromThread(self, f, *a, **k): worker.do(lambda: f(*a, **k)) return CFT(), doer
def deterministicPool(): """ Create a deterministic threadpool. @return: 2-tuple of L{ThreadPool}, 0-argument C{work} callable; when C{work} is called, do the work. """ worker, doer = createMemoryWorker() return ( DeterministicThreadPool(Team(LockWorker(Lock(), local()), (lambda: worker), lambda: None)), doer )
def __init__(self, testCase, *args, **kwargs): """ Create a L{PoolHelper}. @param testCase: a test case attached to this helper. @type args: The arguments passed to a L{threadpool.ThreadPool}. @type kwargs: The arguments passed to a L{threadpool.ThreadPool} """ coordinator, self.performCoordination = createMemoryWorker() self.workers = [] def newWorker(): self.workers.append(createMemoryWorker()) return self.workers[-1][0] self.threadpool = MemoryPool(coordinator, testCase.fail, newWorker, *args, **kwargs)
def test_hash_and_verify(self, password): """ Hashing a password fires with the hash; verifying the password against that hash succeeds, while verifying a different password fails. """ reactor = SynchronousReactorThreads() worker, perform = createMemoryWorker() ctx = TxCryptContext(CryptContext(schemes=['plaintext']), reactor, worker) self.assertThat( ctx.hash(password), performed( perform, succeeded( MatchesAll( AfterPreprocessing( lambda h: ctx.verify(password, h), performed(perform, succeeded(Equals(True)))), AfterPreprocessing( lambda h: ctx.verify(password + u'junk', h), performed(perform, succeeded(Equals(False))))))))
def newWorker(): self.workers.append(createMemoryWorker()) return self.workers[-1][0]