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)
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())