Esempio n. 1
0
 def test_determineFromDifferentNonces(self):
     """
     Each time L{PasswordChallengeResponse.determineFrom} is used, it
     generates a different C{cnonce} value.
     """
     first = PasswordChallengeResponse.determineFrom('a', 'b')
     second = PasswordChallengeResponse.determineFrom('a', 'b')
     self.assertNotEqual(first['cnonce'], second['cnonce'])
Esempio n. 2
0
 def test_determineFromDifferentNonces(self):
     """
     Each time L{PasswordChallengeResponse.determineFrom} is used, it
     generates a different C{cnonce} value.
     """
     first = PasswordChallengeResponse.determineFrom('a', 'b')
     second = PasswordChallengeResponse.determineFrom('a', 'b')
     self.assertNotEqual(first['cnonce'], second['cnonce'])
Esempio n. 3
0
    def test_response(self):
        """
        L{PasswordChallengeResponse.determineFrom} generates the correct
        response to a challenge issued by L{CredReceiver.passwordLogin}.
        """
        challenge = self.server.passwordLogin(self.username)['challenge']
        result = PasswordChallengeResponse.determineFrom(
            challenge, self.password)
        d = self.server.passwordChallengeResponse(**result)
        def cbLoggedIn(ignored):
            [(avatarId, mind, interfaces)] = self.realm.requests
            self.assertEqual(avatarId, self.username)
            self.assertEqual(interfaces, (IBoxReceiver,))

            # The avatar is now the protocol's box receiver.
            self.assertIdentical(self.server.boxReceiver, self.avatar)

            # And the avatar has been started up with the protocol's
            # IBoxSender.
            self.assertIdentical(self.avatar.boxSender, self.server.boxSender)

            # After the connection is lost, the logout function should be
            # called.
            self.assertEqual(self.realm.loggedOut, 0)
            self.server.connectionLost(
                Failure(ConnectionDone("test connection lost")))
            self.assertEqual(self.realm.loggedOut, 1)

        d.addCallback(cbLoggedIn)
        return d
Esempio n. 4
0
    def test_response(self):
        """
        L{PasswordChallengeResponse.determineFrom} generates the correct
        response to a challenge issued by L{CredReceiver.passwordLogin}.
        """
        challenge = self.server.passwordLogin(self.username)['challenge']
        result = PasswordChallengeResponse.determineFrom(
            challenge, self.password)
        d = self.server.passwordChallengeResponse(**result)

        def cbLoggedIn(ignored):
            [(avatarId, mind, interfaces)] = self.realm.requests
            self.assertEqual(avatarId, self.username)
            self.assertEqual(interfaces, (IBoxReceiver, ))

            # The avatar is now the protocol's box receiver.
            self.assertIdentical(self.server.boxReceiver, self.avatar)

            # And the avatar has been started up with the protocol's
            # IBoxSender.
            self.assertIdentical(self.avatar.boxSender, self.server.boxSender)

            # After the connection is lost, the logout function should be
            # called.
            self.assertEqual(self.realm.loggedOut, 0)
            self.server.connectionLost(
                Failure(ConnectionDone("test connection lost")))
            self.assertEqual(self.realm.loggedOut, 1)

        d.addCallback(cbLoggedIn)
        return d
Esempio n. 5
0
 def test_passwordChallengeResponseResponder(self):
     """
     L{CredReceiver} responds to the L{PasswordChallengeResponse} L{Command}
     with an empty box if the response supplied is valid.
     """
     challenge = self.server.passwordLogin(self.username)['challenge']
     d = self.client.callRemote(
         PasswordChallengeResponse, **PasswordChallengeResponse.determineFrom(
             challenge, self.password))
     def cbResponded(result):
         self.assertEqual(result, {})
     d.addCallback(cbResponded)
     return d
Esempio n. 6
0
    def test_passwordChallengeResponseResponder(self):
        """
        L{CredReceiver} responds to the L{PasswordChallengeResponse} L{Command}
        with an empty box if the response supplied is valid.
        """
        challenge = self.server.passwordLogin(self.username)['challenge']
        d = self.client.callRemote(
            PasswordChallengeResponse,
            **PasswordChallengeResponse.determineFrom(challenge,
                                                      self.password))

        def cbResponded(result):
            self.assertEqual(result, {})

        d.addCallback(cbResponded)
        return d