26
from bzrlib import tests
26
from bzrlib.transport import get_transport
28
28
from bzrlib.plugins.builddeb.tests import BuilddebTestCase
29
29
from bzrlib.plugins.builddeb.tests.test_import_dsc import PristineTarFeature
32
class TestImportDsc(BuilddebTestCase):
32
class TestBaseImportDsc(BuilddebTestCase):
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')
41
def make_unpacked_upstream_source(self):
42
os.mkdir(self.upstream_dir)
44
self.build_tree([os.path.join(self.upstream_dir, filename)
45
for filename in files])
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):
47
transport = get_transport(self.upstream_dir)
48
transport.ensure_base()
49
self.build_tree(['README'], transport=transport)
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
56
return upstream_version
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))
63
self._upstream_tarball_name(self.package_name, upstream_version),
51
66
tar.add(self.upstream_dir)
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')
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)
74
92
self.assertEqual(proc.returncode, 0)
75
93
shutil.rmtree(self.upstream_dir)
96
class TestImportDsc(TestBaseImportDsc):
77
98
def test_import_dsc(self):
78
99
self.requireFeature(PristineTarFeature)
79
100
self.make_real_source_package()