예제 #1
0
 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)
     
     
예제 #2
0
 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)
     
     
예제 #3
0
    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)
        
        
예제 #4
0
    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)
예제 #5
0
 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)
     
         
     
     
     
예제 #6
0
파일: generic.py 프로젝트: shawnchin/bbotui
 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)
예제 #7
0
파일: generic.py 프로젝트: shawnchin/bbotui
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)