~ubuntu-branches/debian/sid/bzr-builddeb/sid

« back to all changes in this revision

Viewing changes to tests/blackbox/test_import_dsc.py

  • Committer: Bazaar Package Importer
  • Author(s): Jelmer Vernooij, Colin Watson, Jelmer Vernooij, Robert Collins, James Westby
  • Date: 2010-08-11 18:23:54 UTC
  • Revision ID: james.westby@ubuntu.com-20100811182354-pgqznly5bbtoiso4
Tags: 2.5
[ Colin Watson ]
* Consider a .dsc without a Format: to be Format: 1.0.

[ Jelmer Vernooij ]
* export now uses the timestamp of the last revision, making them more
  deterministic, and so hopefully producing the same tarballs when it is
  used for that.
* Fix use of getattr to have 3 arguments to avoid exception. (LP: #572093)
* Implement the automatic_tag_name hook so that "bzr tag" with no arguments
  will tag based on the version in debian/changelog.
* Support upstream/VERSION tags, for compatibility with git-
  buildpackage. LP: #551362
* Support upstream tarballs without a pristine tar delta.
* Support -r argument to import-upstream.

[ Robert Collins ]
* Add import-upstream command which imports an upstream - useful for
  migrating existing packaging branches into pristine-tar using mode.
* Stop stripping .bzrignore from tarball imports. LP: #496907
* Make the upstream branch authoritative for file ids when importing a
  tarball, stopping errors when files are renamed. LP: #588060

[ James Westby ]
* Add a --package-merge option to builddeb to build with the -v and -sa
  appropriate when doing a merge from Debian or similar. LP: #576027
* Fixed a logic error that stops -r working in merge-upstream. LP: #594575

[ Jelmer Vernooij ]
* Determine Bazaar home directory using bzrlib to prevent test
  isolation issues. Closes: #614125
* Bump standards version to 3.9.1 (no changes).

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
import subprocess
24
24
import tarfile
25
25
 
26
 
from bzrlib import tests
 
26
from bzrlib.transport import get_transport
27
27
 
28
28
from bzrlib.plugins.builddeb.tests import BuilddebTestCase
29
29
from bzrlib.plugins.builddeb.tests.test_import_dsc import PristineTarFeature
30
30
 
31
31
 
32
 
class TestImportDsc(BuilddebTestCase):
 
32
class TestBaseImportDsc(BuilddebTestCase):
33
33
 
34
 
  upstream_dir = property(lambda self:
35
 
      self.package_name + '-' + self.upstream_version)
 
34
  def _upstream_dir(self, package_name, upstream_version):
 
35
      return package_name + '-' + upstream_version
 
36
  upstream_dir = property(lambda self:self._upstream_dir(self.package_name,
 
37
      self.upstream_version))
 
38
  def _upstream_tarball_name(self, package_name, upstream_version):
 
39
      return package_name + '_' + upstream_version + '.orig.tar.gz'
36
40
  upstream_tarball_name = property(lambda self:
37
 
      self.package_name + '_' + self.upstream_version + '.orig.tar.gz')
 
41
      self._upstream_tarball_name(self.package_name, self.upstream_version))
38
42
  dsc_name = property(lambda self:
39
43
      self.package_name + '_' + str(self.package_version) + '.dsc')
40
44
 
41
 
  def make_unpacked_upstream_source(self):
42
 
    os.mkdir(self.upstream_dir)
43
 
    files = ['README']
44
 
    self.build_tree([os.path.join(self.upstream_dir, filename)
45
 
                     for filename in files])
46
 
 
47
 
  def make_upstream_tarball(self):
48
 
    self.make_unpacked_upstream_source()
49
 
    tar = tarfile.open(self.upstream_tarball_name, 'w:gz')
 
45
  def make_unpacked_upstream_source(self, transport=None):
 
46
    if transport is None:
 
47
      transport = get_transport(self.upstream_dir)
 
48
    transport.ensure_base()
 
49
    self.build_tree(['README'], transport=transport)
 
50
 
 
51
  def get_test_upstream_version(self, upstream_version):
 
52
    """Return the upstream_version to be used in a test helper method."""
 
53
    if upstream_version is None:
 
54
        return self.upstream_version
 
55
    else:
 
56
        return upstream_version
 
57
 
 
58
  def make_upstream_tarball(self, upstream_version=None):
 
59
    upstream_version = self.get_test_upstream_version(upstream_version)
 
60
    upstream_dir = self._upstream_dir(self.package_name, upstream_version)
 
61
    self.make_unpacked_upstream_source(get_transport(upstream_dir))
 
62
    tar = tarfile.open(
 
63
        self._upstream_tarball_name(self.package_name, upstream_version),
 
64
        'w:gz')
50
65
    try:
51
66
      tar.add(self.upstream_dir)
52
67
    finally:
53
68
      tar.close()
54
69
 
55
 
  def make_real_source_package(self):
56
 
    self.make_upstream_tarball()
57
 
    debian_dir = os.path.join(self.upstream_dir, 'debian')
 
70
  def make_debian_dir(self, debian_dir):
58
71
    os.mkdir(debian_dir)
59
72
    cl = self.make_changelog()
60
73
    self.write_changelog(cl, os.path.join(debian_dir, 'changelog'))
68
81
      f.write('Architecture: all\n')
69
82
    finally:
70
83
      f.close()
 
84
 
 
85
  def make_real_source_package(self):
 
86
    self.make_upstream_tarball()
 
87
    debian_dir = os.path.join(self.upstream_dir, 'debian')
 
88
    self.make_debian_dir(debian_dir)
71
89
    proc = subprocess.Popen('dpkg-source -b %s' % self.upstream_dir,
72
90
                            shell=True, stdout=subprocess.PIPE)
73
91
    proc.wait()
74
92
    self.assertEqual(proc.returncode, 0)
75
93
    shutil.rmtree(self.upstream_dir)
76
94
 
 
95
 
 
96
class TestImportDsc(TestBaseImportDsc):
 
97
 
77
98
  def test_import_dsc(self):
78
99
    self.requireFeature(PristineTarFeature)
79
100
    self.make_real_source_package()
93
114
    self.run_bzr_error(['You must give the location of at least one source '
94
115
        'package.'], 'import-dsc')
95
116
 
96
 
# vim: ts=2 sts=2 sw=2
 
117
 
 
118
# vim: ts=4 sts=4 sw=4
97
119