def test_requestAvatarIdUnauthorized(self): """ L{OneTimePadChecker.requestAvatarId} should throw L{UnauthorizedLogin} if an unknown pad is given. """ checker = OneTimePadChecker({}) self.assertRaises( UnauthorizedLogin, lambda: checker.requestAvatarId(_AMPOneTimePad(None)))
def test_requestAvatarId(self): """ L{OneTimePadChecker.requestAvatarId} should return the username in the case the pad is valid. """ PAD = 'test_requestAvatarId' USERNAME = '******' checker = OneTimePadChecker({PAD: USERNAME}) self.assertEqual( checker.requestAvatarId(_AMPOneTimePad(PAD)), USERNAME)
def test_oneTimePad(self): """ L{OneTimePadChecker.requestAvatarId} should invalidate the pad if a login is successful. """ PAD = 'test_requestAvatarId' checker = OneTimePadChecker({PAD: 'username'}) checker.requestAvatarId(_AMPOneTimePad(PAD)) self.assertRaises(UnauthorizedLogin, lambda: checker.requestAvatarId(_AMPOneTimePad(PAD)))
def test_requestAvatarId(self): """ L{OneTimePadChecker.requestAvatarId} should return the username in the case the pad is valid. """ PAD = 'test_requestAvatarId' USERNAME = '******' checker = OneTimePadChecker({PAD: USERNAME}) self.assertEqual(checker.requestAvatarId(_AMPOneTimePad(PAD)), USERNAME)
def test_oneTimePad(self): """ L{OneTimePadChecker.requestAvatarId} should invalidate the pad if a login is successful. """ PAD = 'test_requestAvatarId' checker = OneTimePadChecker({PAD: 'username'}) checker.requestAvatarId(_AMPOneTimePad(PAD)) self.assertRaises( UnauthorizedLogin, lambda: checker.requestAvatarId(_AMPOneTimePad(PAD)))
def protocol(): proto = CredReceiver() proto.portal = Portal( self.loginSystem, [self.loginSystem, OneTimePadChecker(self._oneTimePads)]) return proto
def test_otpLoginUnauthorized(self): """ L{CredReceiver.otpLogin} should fail with L{UnauthorizedLogin} if an invalid pad is received. """ self.portal.registerChecker(OneTimePadChecker({})) return self.assertFailure( self.server.otpLogin('test_otpLoginUnauthorized'), UnauthorizedLogin)
def main(): """ Start the AMP server and the reactor. """ startLogging(stdout) checker = OneTimePadChecker({'pad': 0}) realm = AdditionRealm() factory = CredAMPServerFactory(Portal(realm, [checker])) reactor.listenTCP(7805, factory) reactor.run()
def test_otpLogin(self): """ L{CredReceiver.otpLogin} returns without error if the pad is valid. """ PAD = 'test_otpLogin' self.portal.registerChecker(OneTimePadChecker({PAD: 'user'})) d = self.server.otpLogin(PAD) def cbLoggedIn(result): self.assertEqual(result, {}) d.addCallback(cbLoggedIn) return d
def test_otpLoginResponder(self): """ L{CredReceiver} responds to the L{OTPLogin} command. """ PAD = 'test_otpLoginResponder' self.portal.registerChecker(OneTimePadChecker({PAD: 'user'})) d = self.client.callRemote(OTPLogin, pad=PAD) def cbLoggedIn(result): self.assertEqual(result, {}) d.addCallback(cbLoggedIn) return d
def test_otpLoginNotImplemented(self): """ L{CredReceiver.otpLogin} should fail with L{NotImplementedError} if the realm raises L{NotImplementedError} when asked for the avatar. """ def noAvatar(avatarId, mind, *interfaces): raise NotImplementedError() self.realm.requestAvatar = noAvatar PAD = 'test_otpLoginNotImplemented' self.portal.registerChecker(OneTimePadChecker({PAD: 'user'})) return self.assertFailure(self.server.otpLogin(PAD), NotImplementedError)