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_fullRun(self):
        target_repo, source1_repo, source2_repo = \
            testhelper.standard_simple_config(num_stable_sources=2)

        # Set up a merge
        package = testhelper.build_and_import_simple_package(
            'foo', '1.0-1', source1_repo)

        forked = copy(package)
        forked.changelog_entry(version='1.0-1mom1')
        open(forked.pkg_path + '/debian/new.file', 'w').write('hello')
        forked.build()
        target_repo.importPackage(forked)

        package.changelog_entry(version='1.2-1')
        package.create_orig()
        package.build()
        source2_repo.importPackage(package)

        # Set up a conflict
        package = testhelper.build_and_import_simple_package(
            'bar', '2.0-1', source1_repo)

        forked = copy(package)
        forked.changelog_entry(version='2.0-1mom1')
        open(forked.pkg_path + '/debian/new.file', 'w').write('hello')
        forked.build()
        target_repo.importPackage(forked)

        package.changelog_entry(version='2.2-1')
        open(package.pkg_path + '/debian/new.file', 'w').write('conflicts')
        package.create_orig()
        package.build()
        source2_repo.importPackage(package)

        # Set up a sync
        package = testhelper.build_and_import_simple_package(
            'eek', '3.0-1', target_repo)

        updated = copy(package)
        updated.changelog_entry(version='3.1-1')
        updated.create_orig()
        updated.build()
        source1_repo.importPackage(updated)

        # Run the program
        parser = get_option_parser()
        main.options(parser)
        options, args = parser.parse_args()
        main.main(options, [])
Exemple #6
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')
Exemple #7
0
  def test_distroSources(self):
    testhelper.build_and_import_simple_package('foo', '1.0', self.source_repo)

    target = config.targets()[0]
    self.assertEqual(target.name, 'testtarget')
    sourceLists = target.getAllSourceLists()
    upstreamList = sourceLists[0]
    source = upstreamList[0]
    component = source.distro.components()[0]

    source.distro.updateSources(source.dist)
    sources = source.distro.getSources(source.dist, component)
    self.assertEqual(len(sources), 1)
    self.assertEqual(sources[0].get('Package'), 'foo')
    self.assertEqual(sources[0].get('Version'), '1.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)
    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_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)
Exemple #11
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)
    def test_upstreamCorrectUnstableSource(self):
        th.build_and_import_simple_package('foo', '2.4', self.target_repo)
        th.build_and_import_simple_package('foo', '2.0',
                                           self.stable_source_repo)
        th.build_and_import_simple_package('foo', '2.4',
                                           self.unstable1_source_repo)
        th.build_and_import_simple_package('foo', '3.0',
                                           self.unstable2_source_repo)
        th.update_all_distro_sources()

        target = config.targets()[0]
        pkg_version = target.distro.findPackage('foo', version='2.4')[0]

        upstream = update_sources.find_upstream(target, pkg_version)
        self.assertEqual(upstream.package.name, 'foo')
        self.assertEqual(upstream.version, '2.4')
Exemple #13
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_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)
Exemple #16
0
    def test_upstreamFromUnstable(self):
        testhelper.build_and_import_simple_package('foo', '2.3',
                                                   self.target_repo)
        testhelper.build_and_import_simple_package('foo', '2.1',
                                                   self.stable_source_repo)
        testhelper.build_and_import_simple_package('foo', '2.4',
                                                   self.unstable_source_repo)
        testhelper.update_all_distro_sources()

        target = config.targets()[0]
        pkg_version = target.distro.findPackage('foo', version='2.3')[0]

        upstream = update_sources.find_upstream(target, pkg_version)
        self.assertEqual(upstream.package.name, 'foo')
        self.assertEqual(upstream.version, '2.4')
        self.assertTrue(upstream > pkg_version)