def test_fix_job(self): self.r.add_job(name="glibc", version="2.6.1-3", priority='required', dist="sid") pkg = Package.selectBy(name="glibc", version="2.6.1-3")[0] a = Job.selectBy(package=pkg)[0] a.status = JobStatus.BUILDING a.host = socket.gethostname() self.r.add_job(name="xterm", version="1.2-2", priority='extra', dist="sid") pkg = Package.selectBy(name="xterm", version="1.2-2")[0] b = Job.selectBy(package=pkg)[0] b.status = JobStatus.BUILDING b.host = "whoisgonnacallaboxlikethis" self.r.add_job(name="iceweasel", version="5.0-2", priority='optional', dist="sid") pkg = Package.selectBy(name="iceweasel", version="5.0-2")[0] c = Job.selectBy(package=pkg)[0] c.status = JobStatus.WAIT_LOCKED c.host = socket.gethostname() self.assert_(self.r.fix_jobs(False) is True) self.assert_(a.status is JobStatus.WAIT) self.assert_(a.host is None) self.assert_(b.status is JobStatus.BUILDING) self.assert_(b.host is "whoisgonnacallaboxlikethis") self.assert_(c.status is JobStatus.WAIT) self.assert_(c.host is None)
def test_build_more_recent(self): self.r.get_new_jobs() RebuilddConfig().set('build', 'build_more_recent', '1') RebuilddConfig().arch.append("alpha") self.r.add_job(name="recenter", version="2.6.1-3", priority='required', dist="sid", arch="alpha") pkg = Package.selectBy(name="recenter", version="2.6.1-3")[0] a = Job.selectBy(package=pkg)[0] self.r.add_job(name="recenter", version="1:2.6.1-2", priority='required', dist="sid", arch="alpha") pkg = Package.selectBy(name="recenter", version="1:2.6.1-2")[0] b = Job.selectBy(package=pkg)[0] self.r.add_job(name="recenter", version="3.6.1-4", priority='required', dist="sid", arch="alpha") pkg = Package.selectBy(name="recenter", version="3.6.1-4")[0] c = Job.selectBy(package=pkg)[0] self.r.add_job(name="recenter", version="2.6.0-2", priority='required', dist="sid", arch="any") pkg = Package.selectBy(name="recenter", version="2.6.0-2")[0] d = Job.selectBy(package=pkg)[0] self.r.add_job(name="recenter", version="4.6.0-2", priority='required', dist="sid", arch="any") pkg = Package.selectBy(name="recenter", version="4.6.0-2")[0] e = Job.selectBy(package=pkg)[0] self.assert_(self.r.get_new_jobs() > 0) self.assert_(a.status == JobStatus.GIVEUP) self.assert_(b.status == JobStatus.WAIT_LOCKED) self.assert_(c.status == JobStatus.GIVEUP) self.assert_(d.status == JobStatus.GIVEUP) self.assert_(e.status == JobStatus.WAIT_LOCKED) RebuilddConfig().set('build', 'build_more_recent', '0')
def create_db(): try: sqlobject.sqlhub.processConnection = \ sqlobject.connectionForURI(RebuilddConfig().get('build', 'database_uri')) from rebuildd.Package import Package from rebuildd.Job import Job from rebuildd.RebuilddLog import Log Package.createTable() Job.createTable() Log.createTable() except Exception, error: print "E: %s" % error return 1
def test_cancel_job(self): self.r.add_job(name="glibc", version="2.6-2", priority='required', dist="sid") self.r.get_new_jobs() pkg = Package.selectBy(name="glibc", version="2.6-2")[0] job = Job.selectBy(package=pkg)[0] self.assert_(self.r.cancel_job(job.id) is True) self.assert_(self.r.cancel_job(42) is False)
def test_get_job(self): self.r.add_job(name="glibc", version="2.6-3", priority='required', dist="sid") pkg = Package.selectBy(name="glibc", version="2.6-3")[0] job = Job.selectBy(package=pkg)[0] self.assert_(self.r.get_new_jobs() > 0) self.assert_(self.r.get_job(job.id) is job)
def rebuildd_global_test_setup(): RebuilddConfig(dontparse=True) RebuilddConfig().set('log', 'logs_dir', '/tmp') RebuilddConfig().set('build', 'database_uri', 'sqlite:///tmp/rebuildd-tests.db') RebuilddConfig().set('build', 'max_jobs', '100') RebuilddConfig().set('log', 'file', '/dev/null') RebuilddConfig().set('log', 'mail_failed', '0') RebuilddConfig().set('build', 'build_more_recent', '0') RebuilddConfig().set('log', 'mail_successful', '0') RebuilddConfig().arch = ["alpha", "any"] Rebuildd() try: Package.dropTable(ifExists=True) Job.dropTable(ifExists=True) Log.dropTable(ifExists=True) Package.createTable() Job.createTable() Log.createTable() except: pass
def setUp(self): rebuildd_global_test_setup() self.job = Job(package=Package(name="bash", version="3.1dfsg-8"), arch="alpha", dist="sid")
class TestJob(unittest.TestCase): def setUp(self): rebuildd_global_test_setup() self.job = Job(package=Package(name="bash", version="3.1dfsg-8"), arch="alpha", dist="sid") def tearDown(self): rebuildd_global_test_teardown() def test_DB_OK(self): self.assert_(os.path.isfile('/tmp/rebuildd-tests.db')) self.assert_(os.path.getsize('/tmp/rebuildd-tests.db') > 0) def test_init_job(self): self.assert_(type(self.job) is Job) def test_setattr(self): self.job.status = JobStatus.UNKNOWN self.assert_(self.job.status == JobStatus.UNKNOWN) self.job.status = JobStatus.WAIT self.assert_(self.job.status == JobStatus.WAIT) def test_open_logfile(self): file = open(self.job.logfile, "w") self.assert_(file is not None) filero = open(self.job.logfile, "r") self.assert_(filero is not None) file.close() filero.close() os.unlink(file.name) def test_status_on_doquit(self): self.job.do_quit.set() self.job.start() self.job.join() self.assert_(self.job.status == JobStatus.WAIT_LOCKED) def test_build_success(self): self.job.do_quit.clear() RebuilddConfig().set('build', 'source_cmd', '/bin/true') RebuilddConfig().set('build', 'build_cmd', '/bin/true') RebuilddConfig().set('build', 'post_build_cmd', '/bin/true') self.job.start() self.job.join() self.assert_(self.job.status == JobStatus.BUILD_OK) def test_build_failure_source(self): self.job.do_quit.clear() RebuilddConfig().set('build', 'source_cmd', '/bin/false') RebuilddConfig().set('build', 'build_cmd', '/bin/true') RebuilddConfig().set('build', 'post_build_cmd', '/bin/true') self.job.start() self.job.join() self.assert_(self.job.status == JobStatus.SOURCE_FAILED) def test_build_failure_build(self): self.job.do_quit.clear() RebuilddConfig().set('build', 'source_cmd', '/bin/true %s %s %s') RebuilddConfig().set('build', 'build_cmd', '/bin/false %s %s %s %s') RebuilddConfig().set('build', 'post_build_cmd', '/bin/true %s %s %s %s') self.job.start() self.job.join() self.assert_(self.job.status == JobStatus.BUILD_FAILED) def test_build_failure_post_build(self): RebuilddConfig().set('build', 'source_cmd', '/bin/true %s %s %s') RebuilddConfig().set('build', 'build_cmd', '/bin/true %s %s %s %s') RebuilddConfig().set('build', 'post_build_cmd', '/bin/false %s %s %s %s') self.job.start() self.job.join() self.assert_(self.job.status == JobStatus.POST_BUILD_FAILED) def test_send_build_log(self): file = open(self.job.logfile, "w") self.assert_(file is not None) file.write("Fake log file") file.close() self.assert_(self.job.send_build_log() is False) self.job.status = JobStatus.BUILD_OK self.assert_(self.job.send_build_log() is True) self.assert_(self.job.status is JobStatus.BUILD_OK) self.job.status = JobStatus.BUILD_FAILED self.assert_(self.job.send_build_log() is True) self.assert_(self.job.status is JobStatus.BUILD_FAILED)
def setUp(self): rebuildd_global_test_setup() self.job = Job(package=Package(name="bash", version="3.1dfsg-8"), arch="alpha", dist="sid") self.job_dotted_version = Job(package=Package(name="bash", version="1:3.1dfsg-8"), arch="alpha", dist="sid")
class TestJob(unittest.TestCase): def setUp(self): rebuildd_global_test_setup() self.job = Job(package=Package(name="bash", version="3.1dfsg-8"), arch="alpha", dist="sid") self.job_dotted_version = Job(package=Package(name="bash", version="1:3.1dfsg-8"), arch="alpha", dist="sid") def tearDown(self): rebuildd_global_test_teardown() def test_DB_OK(self): self.assert_(os.path.isfile('/tmp/rebuildd-tests.db')) self.assert_(os.path.getsize('/tmp/rebuildd-tests.db') > 0) def test_init_job(self): self.assert_(type(self.job) is Job) def test_setattr(self): self.job.status = JobStatus.UNKNOWN self.assert_(self.job.status == JobStatus.UNKNOWN) self.job.status = JobStatus.WAIT self.assert_(self.job.status == JobStatus.WAIT) def test_open_logfile(self): file = open(self.job.logfile, "w") self.assert_(file is not None) filero = open(self.job.logfile, "r") self.assert_(filero is not None) file.close() filero.close() os.unlink(file.name) def test_status_on_doquit(self): self.job.do_quit.set() self.job.start() self.job.join() self.assert_(self.job.status == JobStatus.WAIT_LOCKED) def test_build_success(self): self.job.do_quit.clear() RebuilddConfig().set('build', 'source_cmd', '/bin/true') RebuilddConfig().set('build', 'build_cmd', '/bin/true') RebuilddConfig().set('build', 'post_build_cmd', '/bin/true') self.job.start() self.job.join() self.assert_(self.job.status == JobStatus.BUILD_OK) def test_build_failure_source(self): self.job.do_quit.clear() RebuilddConfig().set('build', 'source_cmd', '/bin/false') RebuilddConfig().set('build', 'build_cmd', '/bin/true') RebuilddConfig().set('build', 'post_build_cmd', '/bin/true') self.job.start() self.job.join() self.assert_(self.job.status == JobStatus.SOURCE_FAILED) def test_build_failure_build(self): self.job.do_quit.clear() RebuilddConfig().set('build', 'source_cmd', '/bin/true %s %s %s') RebuilddConfig().set('build', 'build_cmd', '/bin/false %s %s %s %s') RebuilddConfig().set('build', 'post_build_cmd', '/bin/true %s %s %s %s') self.job.start() self.job.join() self.assert_(self.job.status == JobStatus.BUILD_FAILED) def test_build_failure_post_build(self): RebuilddConfig().set('build', 'source_cmd', '/bin/true %s %s %s') RebuilddConfig().set('build', 'build_cmd', '/bin/true %s %s %s %s') RebuilddConfig().set('build', 'post_build_cmd', '/bin/false %s %s %s %s') self.job.start() self.job.join() self.assert_(self.job.status == JobStatus.POST_BUILD_FAILED) def test_send_build_log(self): file = open(self.job.logfile, "w") self.assert_(file is not None) file.write("Fake log file") file.close() self.assert_(self.job.send_build_log() is False) self.job.status = JobStatus.BUILD_OK self.assert_(self.job.send_build_log() is True) self.assert_(self.job.status is JobStatus.BUILD_OK) self.job.status = JobStatus.BUILD_FAILED self.assert_(self.job.send_build_log() is True) self.assert_(self.job.status is JobStatus.BUILD_FAILED) def test_get_source_cmd(self): RebuilddConfig().set('build', 'source_cmd', '/bin/true $d $a $p $v $j') cmd = self.job.get_source_cmd() self.assert_(self.job.dist in cmd) self.assert_(self.job.package.name in cmd) self.assert_(self.job.package.version in cmd) self.assert_(str(self.job.id) in cmd) def test_get_build_cmd(self): RebuilddConfig().set('build', 'build_cmd', '/bin/true $d $a $p $v $j') cmd = self.job.get_build_cmd() self.assert_(self.job.dist in cmd) self.assert_(self.job.arch in cmd) self.assert_(self.job.package.name in cmd) self.assert_(self.job.package.version in cmd) self.assert_(str(self.job.id) in cmd) cmd = self.job_dotted_version.get_build_cmd() self.assert_(self.job_dotted_version.package.version not in cmd) def test_get_post_build_cmd(self): RebuilddConfig().set('build', 'post_build_cmd', '') cmd = self.job.get_post_build_cmd() self.assert_(cmd is None) RebuilddConfig().set('build', 'post_build_cmd', '/bin/true $d $a $p $v $j') cmd = self.job.get_post_build_cmd() self.assert_(self.job.dist in cmd) self.assert_(self.job.package.name in cmd) self.assert_(self.job.package.version in cmd) self.assert_(str(self.job.id) in cmd)