def test_name_uniqueness(self): """ Ensure that a project cannot have multiple repos with the same name """ p = self.project r1 = SVNRepository( # first repost project = p, name = "My SVN Repository", url = "http://my.svn.host/svn/test", ) r1.save() r = SVNRepository( # another repos with the same name project = p, name = "My SVN Repository", url = "http://another.svn.host/svn/test", ) self.assertRaises(IntegrityError, r.save) self.assertEqual(r.id, None) # ... but the the same name can be used in a different project np = Project( name = "Another Test Project", owner = self.user, ) np.save() r = SVNRepository( project = np, name = "My SVN Repository", url = "http://my.svn.host/svn/test", ) r.save() self.assertNotEqual(r.id, None)
def test_name_uniqueness(self): """ Ensure that a project cannot have multiple notifiers with the same name """ p = self.project cr = CronScheduler(project=p, name="cron1") cr.save() ch = ChangeScheduler(project=p, name="cron1") self.assertRaises(IntegrityError, ch.save) self.assertEqual(ch.id, None) # the same name can be used in a different project p2 = Project(name="another p", owner=self.user) p2.save() ch.project = p2 ch.save() self.assertNotEqual(ch.id, None)
def test_name_uniqueness(self): """ Ensure that a user cannot have multiple projects with the same name """ np = Project( name = "Test Project", owner = self.user, ) self.assertRaises(IntegrityError, np.save) self.assertEqual(np.id, None) # ... but the the same name can be used for a different user new_user = User.objects.create_user('test2', '*****@*****.**', 'sekrit2') np = Project( name = "Test Project", owner = new_user, ) np.save() self.assertNotEqual(np.id, None)
def test_name_uniqueness(self): """ Ensure that a project cannot have multiple slaves with the same name """ self.assertFalse(self.project.has_buildslave) # create build slave s0 = BuildSlave( project = self.project, name = "test-slave", password = "******", ) s0.save() self.assertTrue(s0.id != None) self.assertEqual(unicode(s0), "test-slave") self.assertTrue(self.project.has_buildslave) s = BuildSlave( project = self.project, name = "test-slave", password = "******", ) self.assertRaises(IntegrityError, s.save) self.assertEqual(s.id, None) # ... but the the same name can be used for a different project np = Project( name = "Another Test Project", owner = self.user, ) np.save() s = BuildSlave( project = np, name = "test-slave", password = "******", ) s.save() self.assertNotEqual(s.id, None)
def test_name_uniqueness(self): """ Ensure that a project cannot have multiple notifiers with the same name """ p = self.project n = MailNotifier(project=p, name="notifier1") n.save() n2 = WebNotifier(project=p, name="notifier1") self.assertRaises(IntegrityError, n2.save) self.assertEqual(n2.id, None) # the same name can be used in a different project p2 = Project(name="another p", owner=self.user) p2.save() n2.project = p2 n2.save() self.assertNotEqual(n2.id, None)
class BbotuiModelTestCase(TestCase): """ Abstract TestCase class which pre-creates users and project instances in setUp(). Also checks that buildbot is installed and importable. """ def setUp(self): try: import buildbot except ImportError: # pragma: no cover self.fail("Buildbot must be installed for this test to proceed") # create user self.user = User.objects.create_user('test', '*****@*****.**', 'sekrit') # create project self.project = Project( name = "Test Project", owner = self.user, ) self.project.save() self.assertTrue(self.project.id != None) def assert_valid_buildbot_config(self, config_class, config_args): """ Uses data returned by ConfigModel.get_config_class() and ConfigModel.get_config_args() to instantiate a buildbot config object. """ # returned config should be a tuple of size 2 self.assertEqual(type(config_class), type(())) self.assertEqual(len(config_class), 2) # now try importing the class class_name, mod_path = config_class try: mod = __import__(mod_path, globals(), locals(), class_name) klass = getattr(mod, class_name) except: # pragma: no cover self.fail("invalid config class return (%s,%s)"%config_class) # try instantiating using given arguments try: step_instance = klass(**config_args) except: # pragma: no cover self.fail("could not instantiate class") def assert_config_string_executable(self, config_obj): """ Generate configuration string and execute using exec(). """ cmd = config_obj.get_import_list() if config_obj.needs_extra_config: cmd.append(config_obj.get_extra_config_str()) cmd.append(config_obj.get_config_str()) try: exec("\n".join(cmd)) except: # pragma: no cover self.fail("config generation failed") def assertListEqual(self, a, b): """ assert that two lists are equal """ self.assertEqual(type(a), type([])) self.assertEqual(type(a), type([])) self.assertEqual(len(a), len(b)) for i,v in enumerate(a): self.assertEqual(b[i],v)