Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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')
Ejemplo n.º 8
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)
Ejemplo n.º 9
0
  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)
Ejemplo n.º 10
0
    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')
Ejemplo n.º 11
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")
Ejemplo n.º 12
0
    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)
Ejemplo n.º 13
0
    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')
Ejemplo n.º 14
0
    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')
Ejemplo n.º 15
0
    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)