def test_onlyDiffIsChangelog(self): package = testhelper.build_and_import_simple_package( 'foo', '1.0-1', self.source1_repo) forked = copy(package) forked.changelog_entry(version='1.0-1mom1') forked.build() self.target_repo.importPackage(forked) package.changelog_entry(version='1.2-1') package.create_orig() package.build() self.source2_repo.importPackage(package) target = config.targets()[0] testhelper.update_all_distro_sources() testhelper.update_all_distro_source_pools() our_version = target.distro.findPackage(package.name, version='1.0-1mom1')[0] upstream = target.findSourcePackage(package.name, version='1.2-1')[0] base = target.findSourcePackage(package.name, version='1.0-1')[0] output_dir = result_dir(target.name, package.name) report = produce_merges.produce_merge(target, base, our_version, upstream, output_dir) self.assertEqual(report.result, MergeResult.SYNC_THEIRS) self.assertEqual(report.merged_version, upstream.version)
def test_mergeNewFile(self): package = testhelper.build_and_import_simple_package( 'foo', '1.0-1', self.source1_repo) forked = copy(package) forked.changelog_entry(version='1.0-1mom1') open(forked.pkg_path + '/debian/new.file', 'w').write('hello') forked.build() self.target_repo.importPackage(forked) package.changelog_entry(version='1.2-1') package.create_orig() package.build() self.source2_repo.importPackage(package) target = config.targets()[0] testhelper.update_all_distro_sources() testhelper.update_all_distro_source_pools() our_version = target.distro.findPackage(package.name, version='1.0-1mom1')[0] upstream = target.findSourcePackage(package.name, version='1.2-1')[0] base = target.findSourcePackage(package.name, version='1.0-1')[0] output_dir = result_dir(target.name, package.name) report = produce_merges.produce_merge(target, base, our_version, upstream, output_dir) self.assertEqual(report.result, MergeResult.MERGED) self.assertTrue(report.merged_version > upstream.version)
def test_multipleOrig(self): package = testhelper.TestPackage('foo', '2.0-1') os.makedirs(package.pkg_path + '/mydir') open(package.pkg_path + '/mydir/mainfile', 'w').write('hello') package.create_orig() package.create_orig(subdir='mydir') package.build() self.source1_repo.importPackage(package) forked = copy(package) forked.changelog_entry(version='2.0-1mom1') open(forked.pkg_path + '/debian/new.file', 'w').write('hello') forked.build() self.target_repo.importPackage(forked) package.changelog_entry(version='3.0-1') open(package.pkg_path + '/debian/new.file2', 'w').write('another') package.create_orig() package.create_orig(subdir='mydir') package.build() self.source2_repo.importPackage(package) target = config.targets()[0] testhelper.update_all_distro_sources() testhelper.update_all_distro_source_pools() our_version = target.distro.findPackage(package.name, version='2.0-1mom1')[0] upstream = target.findSourcePackage(package.name, version='3.0-1')[0] base = target.findSourcePackage(package.name, version='2.0-1')[0] output_dir = result_dir(target.name, package.name) report = produce_merges.produce_merge(target, base, our_version, upstream, output_dir) self.assertEqual(report.result, MergeResult.MERGED)
def test_simpleSync(self): foo = th.build_and_import_simple_package('foo', '1.0', self.target_repo) foo.changelog_entry('2.0') foo.build() self.source1_repo.importPackage(foo) target = config.targets()[0] th.update_all_distro_sources() th.update_all_distro_source_pools() our_version = target.distro.findPackage(foo.name, version='1.0')[0] upstream = target.findSourcePackage(foo.name, '2.0')[0] output_dir = result_dir(target.name, foo.name) report = produce_merge(target, our_version, our_version, upstream, output_dir) self.assertEqual(report.result, MergeResult.SYNC_THEIRS) self.assertEqual(report.merged_version, upstream.version) self.assertEqual(len(report.merged_files), 2) tarfiles = [ x for x in report.merged_files if x.startswith('foo_2.0.tar.') ] self.assertEqual(len(tarfiles), 1) self.assertIn('foo_2.0.dsc', report.merged_files)
def test_noUpstream(self): th.build_and_import_simple_package('foo', '1.0', self.target_repo) th.update_all_distro_sources() target = config.targets()[0] pkg_version = target.distro.findPackage('foo', version='1.0')[0] upstream = update_sources.find_upstream(target, pkg_version) self.assertIsNone(upstream)
def test_noBase(self): th.build_and_import_simple_package('foo', '1.0-1mom1', self.target_repo) target = config.targets()[0] th.update_all_distro_sources() pv = target.distro.findPackage('foo', version='1.0-1mom1')[0] update_sources.handle_package(target, pv.package) update_info = UpdateInfo(pv.package) self.assertIsNone(update_info.base_version)
def test_ourVersionNewer(self): th.build_and_import_simple_package('foo', '2.0', self.target_repo) th.build_and_import_simple_package('foo', '1.0', self.source1_repo) target = config.targets()[0] th.update_all_distro_sources() pv = target.distro.findPackage('foo', version='2.0')[0] update_sources.handle_package(target, pv.package) update_info = UpdateInfo(pv.package) self.assertEqual(update_info.upstream_version, '1.0')
def test_targetIsNewer(self): th.build_and_import_simple_package('foo', '4.0', self.target_repo) th.build_and_import_simple_package('foo', '3.0', self.source_repo) th.update_all_distro_sources() target = config.targets()[0] pkg_version = target.distro.findPackage('foo', version='4.0')[0] upstream = update_sources.find_upstream(target, pkg_version) self.assertEqual(upstream.package.name, 'foo') self.assertEqual(upstream.version, '3.0') self.assertTrue(pkg_version > upstream)
def test_poolDirectory(self): foo = testhelper.build_and_import_simple_package('foo', '1.0', self.target_repo) testhelper.update_all_distro_sources() target = config.targets()[0] pkgs = target.distro.findPackage(foo.name, searchDist=target.dist) self.assertEqual(len(pkgs), 1) pv = pkgs[0] pv.download() self.assertTrue(os.path.isdir(pv.package.poolPath)) versions = pv.package.getPoolVersions() self.assertEqual(len(versions), 1) self.assertEqual(versions[0].version, foo.version)
def test_unmodifiedUpgrade(self): testhelper.build_and_import_simple_package('foo', '1.0', self.target_repo) testhelper.build_and_import_simple_package('foo', '2.0', self.source1_repo) target = config.targets()[0] testhelper.update_all_distro_sources() pv = target.distro.findPackage('foo', version='1.0')[0] update_sources.handle_package(target, pv.package) update_info = UpdateInfo(pv.package) self.assertEqual(update_info.upstream_version, '2.0') self.assertEqual(update_info.base_version, '1.0')
def test_findPackage(self): foo = testhelper.build_and_import_simple_package('foo', '1.0', self.target_repo) testhelper.update_all_distro_sources() target = config.targets()[0] pkgs = target.distro.findPackage(foo.name, searchDist=target.dist) self.assertEqual(len(pkgs), 1) pkgs = target.distro.findPackage(foo.name, searchDist=target.dist, version=foo.version) self.assertEqual(len(pkgs), 1) with self.assertRaises(PackageNotFound): target.distro.findPackage(foo.name, searchDist=target.dist, version="9")
def test_upstreamFromStable(self): th.build_and_import_simple_package('foo', '2.0', self.target_repo) th.build_and_import_simple_package('foo', '2.1', self.stable_source_repo) th.build_and_import_simple_package('foo', '2.4', self.unstable1_source_repo) th.update_all_distro_sources() target = config.targets()[0] pkg_version = target.distro.findPackage('foo', version='2.0')[0] upstream = update_sources.find_upstream(target, pkg_version) self.assertEqual(upstream.package.name, 'foo') self.assertEqual(upstream.version, '2.1') self.assertTrue(upstream > pkg_version)
def test_upstreamCorrectUnstableSource(self): th.build_and_import_simple_package('foo', '2.0', self.target_repo) th.build_and_import_simple_package('foo', '2.2', self.stable_source_repo) th.build_and_import_simple_package('foo', '2.4', self.unstable1_source_repo) th.update_all_distro_sources() target = config.targets()[0] pkg_version = target.distro.findPackage('foo', version='2.0')[0] upstream = update_sources.find_upstream( target, pkg_version, specific_upstream='unstable0distro_source') self.assertEqual(upstream.package.name, 'foo') self.assertEqual(upstream.version, '2.4')
def test_baseFromChangelog(self): foo = th.build_and_import_simple_package('foo', '3.0-1', self.source1_repo) foo.changelog_entry('4.0-1mom1') foo.create_orig() foo.build() self.target_repo.importPackage(foo) target = config.targets()[0] th.update_all_distro_sources() pv = target.distro.findPackage('foo', version='4.0-1mom1')[0] update_sources.handle_package(target, pv.package) update_info = UpdateInfo(pv.package) self.assertEqual(update_info.base_version, '3.0-1')
def test_simpleSync(self): foo = testhelper.build_and_import_simple_package( 'foo', '1.0', self.target_repo) foo.changelog_entry('2.0') foo.build() self.source1_repo.importPackage(foo) target = config.targets()[0] testhelper.update_all_distro_sources() testhelper.update_all_distro_source_pools() our_version = target.distro.findPackage(foo.name, version='1.0')[0] upstream = target.findSourcePackage(foo.name, '2.0')[0] output_dir = result_dir(target.name, foo.name) report = produce_merges.produce_merge(target, our_version, our_version, upstream, output_dir) self.assertEqual(report.result, MergeResult.SYNC_THEIRS) self.assertEqual(report.merged_version, upstream.version)