Ejemplo n.º 1
0
    def test_custom_create(self):
        """
        Create build slave with custom options.
        """
        slave = BuildSlave(
            project  = self.project,
            name     = "test-slave",
            password = "******",
            max_builds = 123,
            timeout   = 51,
        )
        slave.save()
        
        # check generated arguments
        args = slave.get_config_args()
        self.assertEqual(args.get("name", None), slave.name)
        self.assertEqual(args.get("password", None), slave.password)
        self.assertEqual(args.get("missing_timeout", None), 51 * 60)
        self.assertEqual(args.get("max_builds", None), 123)
        notify_list = args.get("notify_on_missing", None)
        self.assertEqual(type(notify_list), type([]))
        self.assertEqual(len(notify_list), 0)
        
        # add an admin that should receive notification on this slave
        admin = BuildAdmin(project=self.project, name="admin1", email="*****@*****.**")
        admin.save()
        self.assertNotEqual(admin.id, None)
        slave.admins.add(admin)
        # check new args
        notify_list = slave.get_config_args().get("notify_on_missing", None)
        self.assertEqual(len(notify_list), 1)
        self.assertEqual(notify_list[0], admin.email)
        
        # add admin that should receive ALL notifcations (including this one of course)
        admin2 = BuildAdmin(project=self.project, name="admin1", 
            email="*****@*****.**", 
            receive_slave_events=True,
        )
        admin2.save()
        # check new args
        notify_list = slave.get_config_args().get("notify_on_missing", None)
        self.assertEqual(len(notify_list), 2)
        for i,e in enumerate(["*****@*****.**", "*****@*****.**"]):
            self.assertEqual(e, notify_list[i])
            
        # ensure no duplicates
        admin.receive_slave_events = True
        admin.save()
        notify_list = slave.get_config_args().get("notify_on_missing", None)
        self.assertEqual(len(notify_list), 2)
        for i,e in enumerate(["*****@*****.**", "*****@*****.**"]):
            self.assertEqual(e, notify_list[i])

        # try instantiating buildbot config object
        self.assert_valid_buildbot_config(slave.get_config_class(), slave.get_config_args())
        
        # Check that the resulting config string is sensible
        self.assert_config_string_executable(slave)
        
        
Ejemplo n.º 2
0
 def test_simple_creation(self):
     """
     Basic Mail Notifier creation
     """
     mn = MailNotifier(project=self.project, name="mail me")
     mn.save()
     self.assertNotEqual(mn.id, None)
     self.assertEqual(unicode(mn), "mail me")
     self.assertEqual(mn.cast().get_config_type(), _("mail notifier"))
     self.assertNotEqual(len(mn.cast().get_mode_str()), 0)
     
     admin = BuildAdmin(
         project = self.project,
         name = "admin",
         email = "*****@*****.**",
         receive_build_events = True,
     )
     admin.save()
     
     args = mn.cast().get_config_args() 
     # check default arguments
     self.assertEqual(args.get("fromaddr", None), settings.DEFAULT_MAIL_FROM_ADDR)
     self.assertEqual(args.get("relayhost", None), settings.DEFAULT_MAIL_SMTP_HOST)
     self.assertEqual(args.get("smtpPort", None), settings.DEFAULT_MAIL_SMTP_PORT)
     self.assertEqual(args.get("lookup", None), settings.DEFAULT_MAIL_RCPT_DOMAIN)
     self.assertEqual(args.get("mode", None), "problem")
     self.assertEqual(args.get("useTls", None), False) 
     self.assertEqual(args.get("sendToInterestedUsers", None), True) 
     er = args.get("extraRecipients", None)
     self.assertEqual(type(er), list)
     self.assertEqual(len(er), 1)
     self.assertEqual(er[0], "*****@*****.**")
     
     # check that the config object can be instantiated
     self.assert_valid_buildbot_config(mn.cast().get_config_class(), args)
     
     # Check that the resulting config string is sensible
     self.assert_config_string_executable(mn.cast())