Ejemplo n.º 1
0
 def test_d_ini(self):
     self.setupSimple()
     c = Change('author', ['test-app/locales/l10n.ini'],
                'comment',
                branch='test-branch')
     c.number = 1
     self.scheduler.addChange(c)
     c = Change('author', ['test-app/locales/en-US/app.dtd'],
                'comment',
                branch='test-branch')
     c.number = 2
     self.scheduler.addChange(c)
     self.failUnlessEqual(len(self.master.sets), 1)
     bset = self.master.sets[0]
     self.failUnlessEqual(bset.builderNames, ['tree-builds'])
     ftb = FakeBuilder('tree-builds')
     bset.start([ftb])
     self.failUnlessEqual(len(ftb.requests), 1)
     st = bset.status
     self.failIf(st.isFinished())
     builder = builderstatus.BuilderStatus('tree-builds')
     build = builderstatus.BuildStatus(builder, 1)
     build.setResults(builderstatus.SUCCESS)
     ftb.requests[0].finished(build)
     self.failUnless(st.isFinished())
     self.failUnless(self.scheduler.dSubmitBuildsets)
     self.scheduler.dSubmitBuildsets.cancel()
     pendings = self.scheduler.pendings
     self.failUnlessEqual(len(pendings), 2)
     self.failUnlessEqual(len(pendings[('test', 'de')]), 1)
     self.failUnlessEqual(len(pendings[('test', 'fr')]), 1)
Ejemplo n.º 2
0
 def test_d_ini(self):
     self.setupSimple()
     c = Change('author', ['test-app/locales/l10n.ini'], 'comment',
                branch='test-branch')
     c.number = 1
     self.scheduler.addChange(c)
     c = Change('author', ['test-app/locales/en-US/app.dtd'], 'comment',
                branch='test-branch')
     c.number = 2
     self.scheduler.addChange(c)
     self.failUnlessEqual(len(self.master.sets), 1)
     bset = self.master.sets[0]
     self.failUnlessEqual(bset.builderNames, ['tree-builds'])
     ftb = FakeBuilder('tree-builds')
     bset.start([ftb])
     self.failUnlessEqual(len(ftb.requests), 1)
     st = bset.status
     self.failIf(st.isFinished())
     builder = builderstatus.BuilderStatus('tree-builds')
     build = builderstatus.BuildStatus(builder, 1)
     build.setResults(builderstatus.SUCCESS)
     ftb.requests[0].finished(build)
     self.failUnless(st.isFinished())
     self.failUnless(self.scheduler.dSubmitBuildsets)
     self.scheduler.dSubmitBuildsets.cancel()
     pendings = self.scheduler.pendings
     self.failUnlessEqual(len(pendings), 2)
     self.failUnlessEqual(len(pendings[('test','de')]), 1)
     self.failUnlessEqual(len(pendings[('test','fr')]), 1)
Ejemplo n.º 3
0
 def test_c_mixed(self):
     self.setupSimple()
     c = Change('author', ['test-app/locales/en-US/file.dtd'], 'comment',
                branch='test-branch')
     c.number = 1
     self.scheduler.addChange(c)
     c = Change('author', ['test-app/file.dtd'], 'comment',
                branch='l10n-test', properties={'locale':'de'})
     c.number = 2
     self.scheduler.addChange(c)
     self.failUnless(self.scheduler.dSubmitBuildsets)
     self.scheduler.dSubmitBuildsets.cancel()
     pendings = self.scheduler.pendings
     self.failUnlessEqual(len(pendings), 2)
     self.failUnlessEqual(len(pendings[('test','de')]), 2)
     self.failUnlessEqual(len(pendings[('test','fr')]), 1)
Ejemplo n.º 4
0
 def testAB(self):
     self.setupSimple()
     c = Change('author', ['some/file.dtd'],
                'comment',
                branch='dir',
                properties={'locale': 'ab'})
     c.number = 1
     self.scheduler.addChange(c)
     self.failUnlessEqual(len(self.master.sets), 1)
     bset = self.master.sets[0]
     props = bset.getProperties()
     self.assertEqual(props['locale'], 'ab')
     self.assertEqual(props['branch'], 'dir')
     self.assertEqual(props['tree'], 'dir-compare')
     self.failUnlessEqual(bset.builderNames, ['dir-compare'])
     ftb = FakeBuilder('dir-compare')
     bset.start([ftb])
     self.failUnlessEqual(len(ftb.requests), 1)
     st = bset.status
     self.failIf(st.isFinished())
     builder = builderstatus.BuilderStatus('dir-compare')
     build = builderstatus.BuildStatus(builder, 1)
     build.setResults(builderstatus.SUCCESS)
     ftb.requests[0].finished(build)
     self.failUnless(st.isFinished())
Ejemplo n.º 5
0
    def _getChangeByNumber_query_done(self, res, changeid):
        (rows, link_rows, file_rows, properties) = res
        if not rows:
            return None
        (who, comments, isdir, branch, revision, revlink, when, category, repository, project) = rows[0]
        branch = str_or_none(branch)
        revision = str_or_none(revision)
        links = [row[0] for row in link_rows]
        links.sort()
        files = [row[0] for row in file_rows]
        files.sort()

        c = Change(
            who=who,
            files=files,
            comments=comments,
            isdir=isdir,
            links=links,
            revision=revision,
            when=when,
            branch=branch,
            category=category,
            revlink=revlink,
            repository=repository,
            project=project,
        )
        c.properties.updateFromProperties(properties)
        c.number = changeid
        self._change_cache.add(changeid, c)
        return c
Ejemplo n.º 6
0
    def _getChangeByNumber_query_done(self, res, changeid):
        (rows, link_rows, file_rows, properties) = res
        if not rows:
            return None
        (who, comments, isdir, branch, revision, revlink, when, category,
         repository, project) = rows[0]
        branch = str_or_none(branch)
        revision = str_or_none(revision)
        links = [row[0] for row in link_rows]
        links.sort()
        files = [row[0] for row in file_rows]
        files.sort()

        c = Change(who=who,
                   files=files,
                   comments=comments,
                   isdir=isdir,
                   links=links,
                   revision=revision,
                   when=when,
                   branch=branch,
                   category=category,
                   revlink=revlink,
                   repository=repository,
                   project=project)
        c.properties.updateFromProperties(properties)
        c.number = changeid
        self._change_cache.add(changeid, c)
        return c
Ejemplo n.º 7
0
 def testDE(self):
     self.setupSimple()
     c = Change('author', ['some/file.dtd'], 'comment',
                branch='dir', properties={'locale': 'de'})
     c.number = 1
     self.scheduler.addChange(c)
     self.failUnlessEqual(len(self.master.sets), 0)
Ejemplo n.º 8
0
 def testDE(self):
     self.setupSimple()
     c = Change('author', ['some/file.dtd'],
                'comment',
                branch='dir',
                properties={'locale': 'de'})
     c.number = 1
     self.scheduler.addChange(c)
     self.failUnlessEqual(len(self.master.sets), 0)
Ejemplo n.º 9
0
 def test_en_US(self):
     self.setupSimple()
     c = Change('author', ['some/file.dtd'], 'comment',
                branch='dir', properties={'locale': 'en-US'})
     c.number = 1
     self.scheduler.addChange(c)
     self.failUnlessEqual(len(self.master.sets), 2)
     locs = sorted(map(lambda bset: bset.getProperties()['locale'],
                       self.master.sets))
     self.assertEqual(locs, ['ab', 'fr'])
Ejemplo n.º 10
0
 def test_b_EnUS(self):
     self.setupSimple()
     c = Change('author', ['test-app/locales/en-US/file.dtd'], 'comment',
                branch='test-branch')
     c.number = 1
     self.scheduler.addChange(c)
     self.failUnless(self.scheduler.dSubmitBuildsets)
     self.scheduler.dSubmitBuildsets.cancel()
     pendings = self.scheduler.pendings
     self.failUnlessEqual(len(pendings), 2)
Ejemplo n.º 11
0
 def test_c_mixed(self):
     self.setupSimple()
     c = Change('author', ['test-app/locales/en-US/file.dtd'],
                'comment',
                branch='test-branch')
     c.number = 1
     self.scheduler.addChange(c)
     c = Change('author', ['test-app/file.dtd'],
                'comment',
                branch='l10n-test',
                properties={'locale': 'de'})
     c.number = 2
     self.scheduler.addChange(c)
     self.failUnless(self.scheduler.dSubmitBuildsets)
     self.scheduler.dSubmitBuildsets.cancel()
     pendings = self.scheduler.pendings
     self.failUnlessEqual(len(pendings), 2)
     self.failUnlessEqual(len(pendings[('test', 'de')]), 2)
     self.failUnlessEqual(len(pendings[('test', 'fr')]), 1)
Ejemplo n.º 12
0
 def test_b_EnUS(self):
     self.setupSimple()
     c = Change('author', ['test-app/locales/en-US/file.dtd'],
                'comment',
                branch='test-branch')
     c.number = 1
     self.scheduler.addChange(c)
     self.failUnless(self.scheduler.dSubmitBuildsets)
     self.scheduler.dSubmitBuildsets.cancel()
     pendings = self.scheduler.pendings
     self.failUnlessEqual(len(pendings), 2)
Ejemplo n.º 13
0
 def test_en_US(self):
     self.setupSimple()
     c = Change('author', ['some/file.dtd'],
                'comment',
                branch='dir',
                properties={'locale': 'en-US'})
     c.number = 1
     self.scheduler.addChange(c)
     self.failUnlessEqual(len(self.master.sets), 2)
     locs = sorted(
         map(lambda bset: bset.getProperties()['locale'], self.master.sets))
     self.assertEqual(locs, ['ab', 'fr'])
 def change14(self):
     c = Change(**dict(category='devel',
                       isdir=0,
                       repository=u'git://warner',
                       who=u'warner',
                       when=266738404,
                       comments=u'fix whitespace',
                       project=u'Buildbot',
                       branch=u'warnerdb',
                       revlink=u'http://warner/0e92a098b',
                       properties={},
                       files=[u'master/buildbot/__init__.py'],
                       revision=u'0e92a098b'))
     c.number = 14
     return c
Ejemplo n.º 15
0
 def change14(self):
     c = Change(**dict(
      category='devel',
      isdir=0,
      repository=u'git://warner',
      who=u'warner',
      when=266738404,
      comments=u'fix whitespace',
      project=u'Buildbot',
      branch=u'warnerdb',
      revlink=u'http://warner/0e92a098b',
      properties={},
      files=[u'master/buildbot/__init__.py'],
      revision=u'0e92a098b'))
     c.number = 14
     return c
Ejemplo n.º 16
0
    def _txn_getChangeNumberedNow(self, t, changeid):
        q = self.quoteq(
            "SELECT author, comments,"
            " is_dir, branch, revision, revlink,"
            " when_timestamp, category,"
            " repository, project"
            " FROM changes WHERE changeid = ?"
        )
        t.execute(q, (changeid,))
        rows = t.fetchall()
        if not rows:
            return None
        (who, comments, isdir, branch, revision, revlink, when, category, repository, project) = rows[0]
        branch = str_or_none(branch)
        revision = str_or_none(revision)
        q = self.quoteq("SELECT link FROM change_links WHERE changeid=?")
        t.execute(q, (changeid,))
        rows = t.fetchall()
        links = [row[0] for row in rows]
        links.sort()

        q = self.quoteq("SELECT filename FROM change_files WHERE changeid=?")
        t.execute(q, (changeid,))
        rows = t.fetchall()
        files = [row[0] for row in rows]
        files.sort()

        p = self.get_properties_from_db("change_properties", "changeid", changeid, t)
        from buildbot.changes.changes import Change

        c = Change(
            who=who,
            files=files,
            comments=comments,
            isdir=isdir,
            links=links,
            revision=revision,
            when=when,
            branch=branch,
            category=category,
            revlink=revlink,
            repository=repository,
            project=project,
        )
        c.properties.updateFromProperties(p)
        c.number = changeid
        return c
Ejemplo n.º 17
0
 def change13(self):
     c = Change(**dict(
      category=None,
      isdir=0,
      repository=u'',
      links=[u'http://buildbot.net', u'http://sf.net/projects/buildbot'],
      who=u'dustin',
      when=266738400,
      comments=u'fix spelling',
      project=u'',
      branch=u'master',
      revlink=None,
      properties={u'notest': u'no'},
      files=[u'master/README.txt', u'slave/README.txt'],
      revision=u'deadbeef'))
     c.number = 13
     return c
Ejemplo n.º 18
0
 def change13(self):
     c = Change(**dict(
         category=None,
         isdir=0,
         repository=u'',
         links=[u'http://buildbot.net', u'http://sf.net/projects/buildbot'],
         who=u'dustin',
         when=266738400,
         comments=u'fix spelling',
         project=u'',
         branch=u'master',
         revlink=None,
         properties={u'notest': u'no'},
         files=[u'master/README.txt', u'slave/README.txt'],
         revision=u'deadbeef'))
     c.number = 13
     return c
Ejemplo n.º 19
0
    def _txn_getChangeNumberedNow(self, t, changeid):
        q = self.quoteq("SELECT author, comments,"
                        " is_dir, branch, revision, revlink,"
                        " when_timestamp, category,"
                        " repository, project"
                        " FROM changes WHERE changeid = ?")
        t.execute(q, (changeid, ))
        rows = t.fetchall()
        if not rows:
            return None
        (who, comments, isdir, branch, revision, revlink, when, category,
         repository, project) = rows[0]
        branch = str_or_none(branch)
        revision = str_or_none(revision)
        q = self.quoteq("SELECT link FROM change_links WHERE changeid=?")
        t.execute(q, (changeid, ))
        rows = t.fetchall()
        links = [row[0] for row in rows]
        links.sort()

        q = self.quoteq("SELECT filename FROM change_files WHERE changeid=?")
        t.execute(q, (changeid, ))
        rows = t.fetchall()
        files = [row[0] for row in rows]
        files.sort()

        p = self.get_properties_from_db("change_properties", "changeid",
                                        changeid, t)
        from buildbot.changes.changes import Change
        c = Change(who=who,
                   files=files,
                   comments=comments,
                   isdir=isdir,
                   links=links,
                   revision=revision,
                   when=when,
                   branch=branch,
                   category=category,
                   revlink=revlink,
                   repository=repository,
                   project=project)
        c.properties.updateFromProperties(p)
        c.number = changeid
        return c
Ejemplo n.º 20
0
 def change14(self):
     c = Change(
         **dict(
             category="devel",
             isdir=0,
             repository=u"git://warner",
             links=[],
             who=u"warner",
             when=266738404,
             comments=u"fix whitespace",
             project=u"Buildbot",
             branch=u"warnerdb",
             revlink=u"http://warner/0e92a098b",
             properties={},
             files=[u"master/buildbot/__init__.py"],
             revision=u"0e92a098b",
         )
     )
     c.number = 14
     return c
Ejemplo n.º 21
0
 def testAB(self):
     self.setupSimple()
     c = Change('author', ['some/file.dtd'], 'comment',
                branch='dir', properties={'locale': 'ab'})
     c.number = 1
     self.scheduler.addChange(c)
     self.failUnlessEqual(len(self.master.sets), 1)
     bset = self.master.sets[0]
     props = bset.getProperties()
     self.assertEqual(props['locale'], 'ab')
     self.assertEqual(props['branch'], 'dir')
     self.assertEqual(props['tree'], 'dir-compare')
     self.failUnlessEqual(bset.builderNames, ['dir-compare'])
     ftb = FakeBuilder('dir-compare')
     bset.start([ftb])
     self.failUnlessEqual(len(ftb.requests), 1)
     st = bset.status
     self.failIf(st.isFinished())
     builder = builderstatus.BuilderStatus('dir-compare')
     build = builderstatus.BuildStatus(builder, 1)
     build.setResults(builderstatus.SUCCESS)
     ftb.requests[0].finished(build)
     self.failUnless(st.isFinished())
Ejemplo n.º 22
0
 def _change_from_chdict(self, chdict):
     # create a Change object, given a chdict
     changeid = chdict.pop('number')
     c = Change(**chdict)
     c.number = changeid
     return c
Ejemplo n.º 23
0
 def _change_from_chdict(self, chdict):
     # create a Change object, given a chdict
     changeid = chdict.pop('number')
     c = Change(**chdict)
     c.number = changeid
     return c