def test_template_version_tagger(self): """ Make sure the template is applied and results in the correct file being included in the tag. """ pkg_dir = join(self.repo_dir, 'pkg3') filename = join(pkg_dir, "tito.props") self.write_file(filename, TEMPLATE_TAGGER_TITO_PROPS) run_command('mkdir -p %s' % join(self.repo_dir, '.tito/templates')) self.write_file(join(self.repo_dir, '.tito/templates/version.rb'), VERSION_TEMPLATE_FILE) os.chdir(self.repo_dir) run_command('git add pkg3/tito.props') run_command("git commit -m 'add tito.props for pkg3'") # Create another pkg3 tag and make sure we got a generated # template file. os.chdir(os.path.join(self.repo_dir, 'pkg3')) tito('tag --debug --accept-auto-changelog') new_ver = get_latest_tagged_version(TEST_PKG_3) self.assertEquals("0.0.2-1", new_ver) dest_file = os.path.join(self.repo_dir, 'pkg3', "version.txt") self.assertTrue(os.path.exists(dest_file)) f = open(dest_file, 'r') contents = f.read() f.close() self.assertTrue("VERSION = \"0.0.2-1\"" in contents)
def test_release_tagger_use_version(self): os.chdir(os.path.join(self.repo_dir, 'pkg2')) start_ver = get_latest_tagged_version(TEST_PKG_2) tito('tag --debug --accept-auto-changelog --use-version 1.3.37') new_ver = get_latest_tagged_version(TEST_PKG_2) self.assertFalse(release_bumped(start_ver, new_ver)) self.assertEquals(new_ver, "1.3.37-1")
def test_tag_with_changelog_multiple(self): tito("tag --accept-auto-changelog --use-version 9.0.0 --changelog=Test --changelog=Fake") check_tag_exists("%s-9.0.0-1" % PKG_NAME, offline=True) changelog = getoutput("cat *.spec") self.assertTrue('- Test' in changelog) self.assertTrue('- Fake' in changelog)
def test_tag_with_custom_message_containing_quotes(self): os.chdir(self.repo_dir) with open(os.path.join(self.repo_dir, '.tito', 'tito.props'), 'a') as f: f.write('tag_commit_message_format = Hack"%(name)s\\\n') tito("tag --accept-auto-changelog") last_msg = getoutput('git log -n 1 --pretty=format:%s') self.assertEqual('Hack"titotestpkg\\', last_msg.strip())
def test_tag_with_custom_message(self): os.chdir(self.repo_dir) with open(os.path.join(self.repo_dir, '.tito', 'tito.props'), 'a') as f: f.write('tag_commit_message_format = No info plz\n') tito("tag --accept-auto-changelog") last_msg = getoutput('git log -n 1 --pretty=format:%s') self.assertEqual('No info plz', last_msg.strip())
def test_lock_force_supported(self): tito('tag --debug --accept-auto-changelog') builder = GitAnnexBuilder(PKG_NAME, None, self.output_dir, self.config, {}, {}, **{'offline': True}) self.assertTrue(builder._lock_force_supported('5.20140107')) self.assertTrue(builder._lock_force_supported('5.20131213')) self.assertFalse(builder._lock_force_supported('5.20131127.1')) self.assertFalse(builder._lock_force_supported('3.20120522'))
def test_with_releaser(self): yum_repo_dir = os.path.join(self.output_dir, 'yum') self._setup_fetchbuilder_releaser(yum_repo_dir) tito('release --debug yum-test') self.assertEquals(1, len(glob.glob(join(yum_repo_dir, "releaseme-0.0.1-1.*noarch.rpm")))) self.assertEquals(1, len(glob.glob(join(yum_repo_dir, "repodata/repomd.xml"))))
def test_with_releaser(self): yum_repo_dir = os.path.join(self.output_dir, 'yum') run_command('mkdir -p %s' % yum_repo_dir) self._setup_fetchbuilder_releaser(yum_repo_dir) tito('release --debug yum-test') self.assertEquals(1, len(glob.glob(join(yum_repo_dir, "releaseme-0.0.1-1.*noarch.rpm")))) self.assertEquals(1, len(glob.glob(join(yum_repo_dir, "repodata/repomd.xml"))))
def test_with_releaser(self): yum_repo_dir = os.path.join(self.output_dir, 'yum') self._setup_fetchbuilder_releaser(yum_repo_dir) tito('release --debug yum-test --arg source=%s' % self.source_filename) self.assertEquals(1, len(glob.glob(join(yum_repo_dir, "extsrc-0.0.2-1.*noarch.rpm")))) self.assertEquals(1, len(glob.glob(join(yum_repo_dir, "repodata/repomd.xml"))))
def test_with_releaser(self): yum_repo_dir = os.path.join(self.output_dir, 'yum') self._setup_fetchbuilder_releaser(yum_repo_dir) tito('release --debug yum-test --arg source=%s' % self.source_filename) self.assertEquals( 1, len(glob.glob(join(yum_repo_dir, "extsrc-0.0.2-1.*noarch.rpm")))) self.assertEquals( 1, len(glob.glob(join(yum_repo_dir, "repodata/repomd.xml"))))
def test_simple_build_no_tag(self): # We have not tagged here. Build --rpm should just work: self.assertFalse(os.path.exists( join(self.pkg_dir, '.tito/packages/extsrc'))) tito('build --rpm --output=%s --no-cleanup --debug --arg=source=%s ' % (self.output_dir, self.source_filename)) self.assertEquals(1, len(glob.glob(join(self.output_dir, "extsrc-0.0.2-1.*src.rpm")))) self.assertEquals(1, len(glob.glob(join(self.output_dir, "noarch/extsrc-0.0.2-1.*noarch.rpm"))))
def test_simple_build_no_tag(self): # We have not tagged here. Build --rpm should just work: self.assertFalse(os.path.exists( join(self.pkg_dir, 'rel-eng/packages/extsrc'))) tito('build --rpm --output=%s --no-cleanup --debug --arg=source=%s ' % (self.output_dir, self.source_filename)) self.assertEquals(1, len(glob.glob(join(self.output_dir, "extsrc-0.0.2-1.*src.rpm")))) self.assertEquals(1, len(glob.glob(join(self.output_dir, "noarch/extsrc-0.0.2-1.*noarch.rpm"))))
def test_simple_build(self): run_command('git annex add %s' % self.source_filename) run_command('git commit -a -m "Add source."') # This will create 0.0.2: tito('tag --debug --accept-auto-changelog') builder = GitAnnexBuilder(PKG_NAME, None, self.output_dir, self.config, {}, {}, **{'offline': True}) builder.rpm() self.assertEquals(1, len(list(builder.sources))) self.assertEquals(2, len(builder.artifacts)) self.assertEquals(1, len(glob.glob(join(self.output_dir, "extsrc-0.0.2-1.*src.rpm")))) self.assertEquals(1, len(glob.glob(join(self.output_dir, 'noarch', "extsrc-0.0.2-1.*.noarch.rpm"))))
def setUpClass(self): 'Run tito build before _all_ tests in this class.' self.output_dir = tempfile.mkdtemp("-titotestoutput") os.chdir(os.path.abspath(join(__file__, '..', '..', '..'))) self.artifacts = tito( 'build --rpm --test --output=%s --offline --no-cleanup --debug' % self.output_dir)
def test_undo_tag(self): os.chdir(self.repo_dir) original_head = getoutput('git show-ref -s refs/heads/master') # Create tito tag, which adds a new commit and moves head. tito("tag --accept-auto-changelog --debug") tag = "%s-0.0.2-1" % PKG_NAME check_tag_exists(tag, offline=True) new_head = getoutput('git show-ref -s refs/heads/master') self.assertNotEqual(original_head, new_head) # Undo tito tag, which rewinds one commit to original head. tito("tag -u") self.assertFalse(tag_exists_locally(tag)) new_head = getoutput('git show-ref -s refs/heads/master') self.assertEqual(original_head, new_head)
def test_simple_build(self): run_command('git annex add %s' % self.source_filename) run_command('git commit -a -m "Add source."') # This will create 0.0.2: tito('tag --debug --accept-auto-changelog') builder = GitAnnexBuilder(PKG_NAME, None, self.output_dir, self.config, {}, {}, **{'offline': True}) builder.rpm() self.assertEquals(1, len(list(builder.sources))) self.assertEquals(2, len(builder.artifacts)) self.assertEquals(1, len(glob.glob(join(self.output_dir, "extsrc-0.0.2-1.*src.rpm")))) self.assertEquals(1, len(glob.glob(join(self.output_dir, 'noarch', "extsrc-0.0.2-1.*.noarch.rpm")))) builder.cleanup()
def setUpClass(self): 'Run tito build before _all_ tests in this class.' self.output_dir = tempfile.mkdtemp("-titotestoutput") os.chdir(os.path.abspath(join(__file__, '..', '..', '..'))) self.artifacts = tito( 'build --rpm --test --output=%s --offline --no-cleanup --debug' % self.output_dir )
def test_tag(self): tito("tag --accept-auto-changelog --debug") check_tag_exists("%s-0.0.2-1" % PKG_NAME, offline=True)
def test_untagged_test_build(self): self.create_project(PKG_NAME, tag=False) self.assertEqual("", run_command("git tag -l").strip()) tito('build --srpm --test')
def test_build_tgz(self): os.chdir(os.path.join(self.repo_dir, 'pkg1')) artifacts = tito('build --tgz') self.assertEquals(1, len(artifacts)) self.assertEquals('%s-0.0.1.tar.gz' % TEST_PKG_1, os.path.basename(artifacts[0]))
def test_build_latest_rpm(self): tito("build --rpm -o %s" % self.repo_dir)
def test_build_tgz_tag(self): tito("build --tgz --tag=%s-0.0.1-1 -o %s" % (PKG_NAME, self.repo_dir)) self.assertTrue(os.path.exists(os.path.join(self.repo_dir, "%s-0.0.1.tar.gz" % PKG_NAME)))
def test_build_rpm(self): os.chdir(os.path.join(self.repo_dir, 'pkg1')) artifacts = tito('build --rpm') self.assertEquals(3, len(artifacts))
def test_build_tgz_tag(self): tito("build --tgz --tag=%s-0.0.1-1 -o %s" % (PKG_NAME, self.repo_dir)) self.assertTrue( os.path.exists( os.path.join(self.repo_dir, "%s-0.0.1.tar.gz" % PKG_NAME)))
def test_latest_tgz(self): tito("build --tgz -o %s" % self.repo_dir)
def test_tag_with_version(self): tito("tag --accept-auto-changelog --debug --use-version 9.0.0") check_tag_exists("%s-9.0.0-1" % PKG_NAME, offline=True)
def test_build_rpm_tag(self): tito("build --rpm --tag=%s-0.0.1-1 -o %s" % (PKG_NAME, self.repo_dir))
def test_build_latest_srpm(self): tito("build --srpm")
def test_release_tagger(self): os.chdir(os.path.join(self.repo_dir, 'pkg2')) start_ver = get_latest_tagged_version(TEST_PKG_2) tito('tag --debug --accept-auto-changelog') new_ver = get_latest_tagged_version(TEST_PKG_2) self.assertTrue(release_bumped(start_ver, new_ver))
def test_tag_with_version_and_release(self): tito("tag --accept-auto-changelog --debug --use-version 9.0.0 --use-release dummyvalue") check_tag_exists("%s-9.0.0-dummyvalue" % PKG_NAME, offline=True)
def test_release_tagger_use_release(self): os.chdir(os.path.join(self.repo_dir, 'pkg2')) tito('tag --debug --accept-auto-changelog --use-release 42') new_ver = get_latest_tagged_version(TEST_PKG_2) self.assertEquals(new_ver.split('-')[-1], "42")
def test_tag_with_version_and_release(self): tito( "tag --accept-auto-changelog --debug --use-version 9.0.0 --use-release dummyvalue" ) check_tag_exists("%s-9.0.0-dummyvalue" % PKG_NAME, offline=True)