예제 #1
0
 def test_simple_creation(self):
     """
     Basic Web Notifier creation
     """
     wn = WebNotifier(project=self.project, name="waterfall")
     wn.save()
     self.assertNotEqual(wn.id, None)
     self.assertEqual(unicode(wn), "waterfall")
     self.assertEqual(wn.cast().get_config_type(), _("web notifier"))
         
     args = wn.cast().get_config_args() 
     self.assertEqual(args.get("http_port", None), settings.DEFAULT_WEBSTATUS_PORT)
     
     # check that the config object can be instantiated
     self.assert_valid_buildbot_config(wn.cast().get_config_class(), args)
     
     # check authentication class
     self.assertEqual(wn.cast().get_auth_class(), None)
     self.assertEqual(wn.cast().get_auth_args(), None)
     
     # Check that the resulting config string is sensible
     self.assert_config_string_executable(wn.cast())
     self.assertEqual(None, wn.cast().get_auth_str())
예제 #2
0
    def test_with_auth(self):
        """
        Test Web notifier with admin interface enabled (default options)
        """
        wn = WebNotifier(project=self.project, name="waterfall2",
            port = 8765,
            enable_admin_interface = True,
        )
        wn.save()
        
        # check additional config args
        args = wn.cast().get_config_args()
        self.assertEqual(args.get("http_port", None), 8765)

        # check authentication class
        self.assertNotEqual(wn.cast().get_auth_class(), None)
        self.assertNotEqual(wn.cast().get_auth_args(), None)
        
        args = wn.cast().get_auth_args() # now look at auth module args
        self.assertEqual(args.get("forceBuild", None), True)
        self.assertEqual(args.get("forceAllBuilds", None), True)
        self.assertEqual(args.get("pingBuilder", None), True)
        self.assertEqual(args.get("gracefulShutdown", None), False)
        self.assertEqual(args.get("stopBuild", None), True)
        self.assertEqual(args.get("stopAllBuilds", None), True)
        self.assertEqual(args.get("cancelPendingBuild", None), False)
        self.assertEqual(args.get("cleanShutdown", None), False)

        # Make sure changes to object are reflected in args
        wn.allow_ping_slave = False
        wn.save()
        self.assertEqual(wn.cast().get_auth_args().get("pingBuilder", None), False)
        wn.allow_shutdown_slave = True
        wn.save()
        self.assertEqual(wn.cast().get_auth_args().get("gracefulShutdown", None), True)
        wn.allow_shutdown_master = True
        wn.save()
        self.assertEqual(wn.cast().get_auth_args().get("cleanShutdown", None), True)
        wn.allow_force_build = False
        wn.save()
        self.assertEqual(wn.cast().get_auth_args().get("forceBuild", None), False)
        self.assertEqual(wn.cast().get_auth_args().get("forceAllBuilds", None), False)
        wn.allow_stop_build = False
        wn.save()
        self.assertEqual(wn.cast().get_auth_args().get("stopBuild", None), False)
        self.assertEqual(wn.cast().get_auth_args().get("stopAllBuilds", None), False)
        wn.allow_cancel_pending_build = True
        wn.save()
        self.assertEqual(wn.cast().get_auth_args().get("cancelPendingBuild", None), True)
       
        # check that the auth object can be instantiated
        args = wn.cast().get_auth_args() # now look at auth module args
        self.assert_valid_buildbot_config(wn.cast().get_auth_class(), args)

        # Check that the resulting config string is sensible
        self.assert_config_string_executable(wn.cast())