Beispiel #1
0
 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))))
Beispiel #2
0
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)
Beispiel #3
0
 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
Beispiel #4
0
 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
Beispiel #5
0
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
    )
Beispiel #8
0
    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 __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)
Beispiel #10
0
 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))))))))
Beispiel #11
0
 def newWorker():
     self.workers.append(createMemoryWorker())
     return self.workers[-1][0]
 def newWorker():
     self.workers.append(createMemoryWorker())
     return self.workers[-1][0]