~spiv/bzr-builddeb/use-dpkg-mergechangelogs

« back to all changes in this revision

Viewing changes to tests/test_upstream.py

  • Committer: Jelmer Vernooij
  • Date: 2011-06-28 08:41:44 UTC
  • mfrom: (578.2.9 multi-tarball)
  • Revision ID: jelmer@samba.org-20110628084144-1xbothpqtc1eptlo
Merge part 5 of support for multiple upstream tarballs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
168
168
        apt_pkg = MockAptPkg(sources)
169
169
        src = AptSource()
170
170
        src._run_apt_source = caller.call
171
 
        self.assertRaises(PackageVersionNotPresent, src.fetch_tarball,
 
171
        self.assertRaises(PackageVersionNotPresent, src.fetch_tarballs,
172
172
            "apackage", "0.2", "target", _apt_pkg=apt_pkg)
173
173
        self.assertEqual(1, apt_pkg.init_called_times)
174
174
        self.assertEqual(1, apt_pkg.get_pkg_source_records_called_times)
184
184
        apt_pkg = MockAptPkg(sources)
185
185
        src = AptSource()
186
186
        src._run_apt_source = caller.call
187
 
        self.assertRaises(PackageVersionNotPresent, src.fetch_tarball,
 
187
        self.assertRaises(PackageVersionNotPresent, src.fetch_tarballs,
188
188
            "apackage", "0.2", "target", _apt_pkg=apt_pkg)
189
189
        self.assertEqual(1, apt_pkg.init_called_times)
190
190
        self.assertEqual(1, apt_pkg.get_pkg_source_records_called_times)
202
202
        apt_pkg = MockAptPkg(sources)
203
203
        src = AptSource()
204
204
        src._run_apt_source = caller.call
205
 
        paths = src.fetch_tarball("apackage", "0.2", "target",
 
205
        paths = src.fetch_tarballs("apackage", "0.2", "target",
206
206
            _apt_pkg=apt_pkg)
207
207
        self.assertEquals(paths, [
208
208
            "target/apackage_0.2.orig.tar.bz2",
216
216
        apt_pkg = MockAptPkg(sources)
217
217
        src = AptSource()
218
218
        src._run_apt_source = caller.call
219
 
        paths = src.fetch_tarball("apackage", "0.2", "target",
 
219
        paths = src.fetch_tarballs("apackage", "0.2", "target",
220
220
            _apt_pkg=apt_pkg)
221
221
        self.assertEquals(paths, ["target/apackage_0.2.orig.tar.bz2"])
222
222
 
228
228
        apt_pkg = MockAptPkg(sources)
229
229
        src = AptSource()
230
230
        src._run_apt_source = caller.call
231
 
        paths = src.fetch_tarball("apackage", "0.2", "target",
 
231
        paths = src.fetch_tarballs("apackage", "0.2", "target",
232
232
            _apt_pkg=apt_pkg)
233
233
        self.assertEquals(paths, ["target/apackage_0.2.orig.tar.lzma"])
234
234
 
240
240
        apt_pkg = MockAptPkg(sources)
241
241
        src = AptSource()
242
242
        src._run_apt_source = caller.call
243
 
        paths = src.fetch_tarball("apackage", "0.2", "target",
 
243
        paths = src.fetch_tarballs("apackage", "0.2", "target",
244
244
            _apt_pkg=apt_pkg)
245
245
        self.assertEquals(paths, ["target/apackage_0.2.orig.tar.gz"])
246
246
        self.assertEqual(1, apt_pkg.init_called_times)
262
262
        apt_pkg = MockAptPkg(sources)
263
263
        src = AptSource()
264
264
        src._run_apt_source = caller.call
265
 
        self.assertRaises(PackageVersionNotPresent, src.fetch_tarball,
 
265
        self.assertRaises(PackageVersionNotPresent, src.fetch_tarballs,
266
266
            "apackage", "0.2", "target",
267
267
            _apt_pkg=apt_pkg)
268
268
        self.assertEqual(1, apt_pkg.init_called_times)
284
284
        apt_pkg = MockAptPkg(sources)
285
285
        src = AptSource()
286
286
        src._run_apt_source = caller.call
287
 
        self.assertRaises(PackageVersionNotPresent, src.fetch_tarball,
 
287
        self.assertRaises(PackageVersionNotPresent, src.fetch_tarballs,
288
288
            "apackage", "0.2", "target", _apt_pkg=apt_pkg)
289
289
        self.assertEqual(1, apt_pkg.init_called_times)
290
290
        self.assertEqual(1, apt_pkg.get_pkg_source_records_called_times)
304
304
    def get_latest_version(self, package, current_version):
305
305
        return self._latest
306
306
 
307
 
    def fetch_tarball(self, package, version, target_dir):
 
307
    def fetch_tarballs(self, package, version, target_dir):
308
308
        self._specific_versions.append((package, version, target_dir))
309
309
        if not self._succeed:
310
310
            raise PackageVersionNotPresent(package, version, self)
311
 
        return [self._tarball_path(package, version, target_dir)]
 
311
        return [self._tarball_path(package, version, None, target_dir)]
312
312
 
313
313
    def __repr__(self):
314
314
        return "%s()" % self.__class__.__name__
316
316
 
317
317
class StackedUpstreamSourceTests(TestCase):
318
318
 
319
 
    def test_fetch_tarball_first_wins(self):
 
319
    def test_fetch_tarballs_first_wins(self):
320
320
        a = RecordingSource(False)
321
321
        b = RecordingSource(True)
322
322
        c = RecordingSource(False)
323
323
        stack = StackedUpstreamSource([a, b, c])
324
 
        stack.fetch_tarball("mypkg", "1.0", "bla")
 
324
        stack.fetch_tarballs("mypkg", "1.0", "bla")
325
325
        self.assertEquals([("mypkg", "1.0", "bla")], b._specific_versions)
326
326
        self.assertEquals([("mypkg", "1.0", "bla")], a._specific_versions)
327
327
        self.assertEquals([], c._specific_versions)
343
343
        b = RecordingSource(False)
344
344
        stack = StackedUpstreamSource([a, b])
345
345
        self.assertRaises(PackageVersionNotPresent,
346
 
                stack.fetch_tarball, "pkg", "1.0", "bla")
 
346
                stack.fetch_tarballs, "pkg", "1.0", "bla")
347
347
        self.assertEquals([("pkg", "1.0", "bla")], b._specific_versions)
348
348
        self.assertEquals([("pkg", "1.0", "bla")], a._specific_versions)
349
349
 
403
403
        super(UpstreamBranchSourceTests, self).setUp()
404
404
        self.tree = self.make_branch_and_tree('.')
405
405
 
406
 
    def test_fetch_tarball(self):
 
406
    def test_fetch_tarballs(self):
407
407
        self.tree.commit("msg")
408
408
        self.tree.branch.tags.set_tag("1.0", self.tree.branch.last_revision())
409
409
        source = UpstreamBranchSource(self.tree.branch,
410
410
            {"1.0": self.tree.branch.last_revision()})
411
411
        os.mkdir("mydir")
412
412
        self.assertEquals(["mydir/foo_1.0.orig.tar.gz"],
413
 
            source.fetch_tarball("foo", "1.0", "mydir"))
 
413
            source.fetch_tarballs("foo", "1.0", "mydir"))
414
414
        self.assertPathExists("mydir/foo_1.0.orig.tar.gz")
415
415
 
416
 
    def test_fetch_tarball_not_found(self):
 
416
    def test_fetch_tarballs_not_found(self):
417
417
        source = UpstreamBranchSource(self.tree.branch)
418
418
        self.tree.commit("msg")
419
419
        self.assertRaises(PackageVersionNotPresent,
420
 
            source.fetch_tarball, "foo", "1.0", "mydir")
 
420
            source.fetch_tarballs, "foo", "1.0", "mydir")
421
421
 
422
422
    def test_get_latest_version(self):
423
423
        self.tree.commit("msg")
468
468
        super(LazyUpstreamBranchSourceTests, self).setUp()
469
469
        self.tree = self.make_branch_and_tree('.')
470
470
 
471
 
    def test_fetch_tarball(self):
 
471
    def test_fetch_tarballs(self):
472
472
        self.tree.commit("msg")
473
473
        self.tree.branch.tags.set_tag("1.0", self.tree.branch.last_revision())
474
474
        source = LazyUpstreamBranchSource(self.tree.branch.base,
476
476
        self.assertIs(None, source._upstream_branch)
477
477
        os.mkdir("mydir")
478
478
        self.assertEquals(["mydir/foo_1.0.orig.tar.gz"],
479
 
            source.fetch_tarball("foo", "1.0", "mydir"))
 
479
            source.fetch_tarballs("foo", "1.0", "mydir"))
480
480
        self.assertPathExists("mydir/foo_1.0.orig.tar.gz")
481
481
        self.assertIsNot(None, source._upstream_branch)
482
482
 
483
 
    def test_fetch_tarball_not_found(self):
 
483
    def test_fetch_tarballs_not_found(self):
484
484
        source = LazyUpstreamBranchSource(self.tree.branch.base)
485
485
        self.assertIs(None, source._upstream_branch)
486
486
        self.tree.commit("msg")
487
487
        self.assertRaises(PackageVersionNotPresent,
488
 
            source.fetch_tarball, "foo", "1.0", "mydir")
 
488
            source.fetch_tarballs, "foo", "1.0", "mydir")
489
489
        self.assertIsNot(None, source._upstream_branch)
490
490
 
491
491
    def test_get_latest_version(self):
719
719
                "upstream-" + upstream_v_no)
720
720
 
721
721
    def test_tag_name_distro(self):
722
 
        self.assertEquals(self.source.tag_name("0.3", "ubuntu"),
 
722
        self.assertEquals(self.source.tag_name("0.3", distro="ubuntu"),
723
723
                "upstream-ubuntu-0.3")
724
724
 
725
725
    def test_version(self):
726
726
        self.assertEquals(['upstream-3.3', 'upstream-debian-3.3',
727
727
            'upstream-ubuntu-3.3', 'upstream/3.3'],
728
 
            self.source.possible_tag_names("3.3"))
 
728
            self.source.possible_tag_names("3.3", component=None))
 
729
 
 
730
    def test_version_component(self):
 
731
        self.assertEquals(['upstream-3.3/extlib', 'upstream-debian-3.3/extlib',
 
732
            'upstream-ubuntu-3.3/extlib'],
 
733
            self.source.possible_tag_names("3.3", component="extlib"))
729
734
 
730
735
    def test_pristine_tar_format_gz(self):
731
736
        rev = Revision("myrevid")
783
788
        source = TarfileSource("foo-1.0.tar.gz")
784
789
        self.assertEquals("1.0", source.get_latest_version("foo", "0.9"))
785
790
 
786
 
    def test_fetch_tarball(self):
 
791
    def test_fetch_tarballs(self):
787
792
        source = TarfileSource("foo-1.0.tar.gz", "1.0")
788
793
        os.mkdir("bar")
789
794
        self.assertEquals(["bar/foo_1.0.orig.tar.gz"],
790
 
            source.fetch_tarball("foo", "1.0", "bar"))
 
795
            source.fetch_tarballs("foo", "1.0", "bar"))
791
796
        self.assertPathExists("bar/foo_1.0.orig.tar.gz")
792
797
 
793
 
    def test_fetch_tarball_repack(self):
 
798
    def test_fetch_tarballs_repack(self):
794
799
        zf = zipfile.ZipFile("bla-2.0.zip", "w")
795
800
        zf.writestr('avoid', 'empty zip to make the repacker happy\n')
796
801
        zf.close()
797
802
        source = TarfileSource("bla-2.0.zip", "2.0")
798
803
        os.mkdir("bar")
799
804
        self.assertEquals(["bar/foo_2.0.orig.tar.gz"],
800
 
            source.fetch_tarball("foo", "2.0", "bar"))
 
805
            source.fetch_tarballs("foo", "2.0", "bar"))
801
806
        self.assertPathExists("bar/foo_2.0.orig.tar.gz")
802
807
 
803
 
    def test_fetch_tarball_not_present(self):
 
808
    def test_fetch_tarballs_not_present(self):
804
809
        source = TarfileSource("foo-1.0.tar.gz", "1.0")
805
810
        os.mkdir("bar")
806
811
        self.assertRaises(PackageVersionNotPresent,
807
 
            source.fetch_tarball, "foo", "0.9", "bar")
 
812
            source.fetch_tarballs, "foo", "0.9", "bar")
808
813
 
809
 
    def test_fetch_tarball_bz2(self):
 
814
    def test_fetch_tarballs_bz2(self):
810
815
        tar = tarfile.open("foo-1.0.tar.bz2", "w:bz2")
811
816
        tar.close()
812
817
        # verify this is a bzip2 file
814
819
        source = TarfileSource("foo-1.0.tar.bz2", "1.0")
815
820
        os.mkdir("bar")
816
821
        self.assertEquals(["bar/foo_1.0.orig.tar.gz"],
817
 
            source.fetch_tarball("foo", "1.0", "bar"))
 
822
            source.fetch_tarballs("foo", "1.0", "bar"))
818
823
        self.assertPathExists("bar/foo_1.0.orig.tar.gz")
819
824
        gzip.open("bar/foo_1.0.orig.tar.gz").close()
820
825
 
830
835
        source = TarfileSource("foo-1.0.tar.lzma", "1.0")
831
836
        os.mkdir("bar")
832
837
        self.assertEquals(["bar/foo_1.0.orig.tar.gz"],
833
 
            source.fetch_tarball("foo", "1.0", "bar"))
 
838
            source.fetch_tarballs("foo", "1.0", "bar"))
834
839
        self.assertPathExists("bar/foo_1.0.orig.tar.gz")
835
840
        gzip.open("bar/foo_1.0.orig.tar.gz").close()
836
841