From e1174d9c3a1393f086453b1fda28eb622197a12e Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Wed, 8 Dec 2010 21:39:55 -0500 Subject: [PATCH] Make some unit tests pass. --- master/buildbot/test/unit/test_changes_pb.py | 50 ++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 master/buildbot/test/unit/test_changes_pb.py diff --git a/master/buildbot/test/unit/test_changes_pb.py b/master/buildbot/test/unit/test_changes_pb.py new file mode 100644 index 00000000000..3d024cb5b75 --- /dev/null +++ b/master/buildbot/test/unit/test_changes_pb.py @@ -0,0 +1,50 @@ + +""" +Test the PB change source. +""" + +from twisted.trial.unittest import TestCase +from twisted.spread.pb import IPerspective +from twisted.cred.credentials import UsernamePassword + +from buildbot.master import BotMaster +from buildbot.changes.pb import ChangePerspective, PBChangeSource + +class TestPBChangeSource(TestCase): + """ + Tests for PBChangeSource. + """ + def setUp(self): + """ + Create an unstarted BotMaster instance with a PBChangeSource as a child. + """ + self.username = 'alice' + self.password = 'sekret' + self.master = BotMaster() + self.change_source = PBChangeSource(self.username, self.password) + self.master.change_svc.addSource(self.change_source) + + + def test_authentication(self): + """ + After the BotMaster service starts, the PBChangeSource's credentials are + accepted by the master's credentials checker. + """ + self.master.startService() + self.assertEquals( + self.master.checker.requestAvatarId( + UsernamePassword(self.username, self.password)), + self.username) + + + def test_authorization(self): + """ + After the BotMaster service starts, a ChangePerspective can be retrieved + from the master's dispatcher (realm) with the PBChangeSource's username + (avatar identifier). + """ + self.master.startService() + perspective = self.master.dispatcher.requestAvatar( + self.username, None, IPerspective) + self.assertIsInstance(perspective, ChangePerspective) +