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"])
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"])
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
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)]
313
313
def __repr__(self):
314
314
return "%s()" % self.__class__.__name__
317
317
class StackedUpstreamSourceTests(TestCase):
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)
403
403
super(UpstreamBranchSourceTests, self).setUp()
404
404
self.tree = self.make_branch_and_tree('.')
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")
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")
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('.')
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)
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)
491
491
def test_get_latest_version(self):
719
719
"upstream-" + upstream_v_no)
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")
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))
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"))
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"))
786
def test_fetch_tarball(self):
791
def test_fetch_tarballs(self):
787
792
source = TarfileSource("foo-1.0.tar.gz", "1.0")
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")
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')
797
802
source = TarfileSource("bla-2.0.zip", "2.0")
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")
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")
806
811
self.assertRaises(PackageVersionNotPresent,
807
source.fetch_tarball, "foo", "0.9", "bar")
812
source.fetch_tarballs, "foo", "0.9", "bar")
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")
812
817
# verify this is a bzip2 file
814
819
source = TarfileSource("foo-1.0.tar.bz2", "1.0")
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()
830
835
source = TarfileSource("foo-1.0.tar.lzma", "1.0")
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()