3
'''Integration test for "import" script.'''
5
# this is part of langpack-o-matic, by Martin Pitt <martin.pitt@canonical.com>
7
# (C) 2010 Canonical Ltd.
16
class_domain_expected = {
18
'gnome-': 'gnome-session-2.0',
19
'kde-': 'knetworkconf'
22
class _T(unittest.TestCase):
24
self.outdir = tempfile.mkdtemp()
25
self.srcroot = os.path.dirname(os.path.dirname(os.path.abspath(sys.argv[0])))
26
self.mirror = 'file://%s/test/archive' % self.srcroot
27
self.full_tar = os.path.join(self.srcroot, 'test', 'test-full.tar.gz')
28
self.update_tar = os.path.join(self.srcroot, 'test', 'test-update.tar.gz')
29
self.import_path = os.path.join(self.srcroot, 'import')
30
self.updated_packages = os.path.join(self.srcroot, 'updated-packages')
31
assert not os.path.exists(self.updated_packages), 'updated-packages already exists, please clean up first'
34
shutil.rmtree(self.outdir)
35
if os.path.exists(self.updated_packages):
36
os.unlink(self.updated_packages)
38
def test_full_classes_nostatic(self):
39
'''full tarball, classes, no static'''
41
i = subprocess.Popen([self.import_path, '-s', '--mirror', self.mirror,
42
self.full_tar, 'lucid', self.outdir], stdout=subprocess.PIPE,
43
stderr=subprocess.PIPE)
44
out, err = i.communicate()
45
self.assertEqual(i.returncode, 0, 'import script failed:\n' + err)
46
self.assertEqual(err, '')
48
updated = open(self.updated_packages).read()
50
for lang in ('de', 'en', 'pt', 'zh-hans', 'zh-hant'):
51
for cls in ('', 'gnome-', 'kde-'):
52
# base packs should be created and have the expected files
53
dir = os.path.join(self.outdir, 'sources-base',
54
'language-pack-%s%s-base' % (cls, lang))
55
self.assert_(os.path.isfile(os.path.join(dir, 'debian', 'control')))
56
change = open(os.path.join(dir, 'debian', 'changelog')).readline()
57
self.assertEqual(change, 'language-pack-%s%s-base (1:10.04+20100101) lucid; urgency=low\n' % (cls, lang))
58
locs = os.listdir(os.path.join(dir, 'data'))
60
locs.remove('extra.tar')
63
self.assert_(len(locs) >= 1)
65
self.assertEqual(os.listdir(os.path.join(dir, 'data', loc,
66
'LC_MESSAGES')), [class_domain_expected[cls] + '.po'])
68
self.assert_('sources-base/language-pack-%s%s-base\n' % (cls, lang) in updated)
70
# update packs should be created and be empty
71
dir = os.path.join(self.outdir, 'sources-update',
72
'language-pack-%s%s' % (cls, lang))
73
self.assert_(os.path.isfile(os.path.join(dir, 'debian', 'control')))
74
change = open(os.path.join(dir, 'debian', 'changelog')).readline()
75
self.assertEqual(change, 'language-pack-%s%s (1:10.04+20100101) lucid; urgency=low\n' % (cls, lang))
76
self.assertEqual(os.listdir(os.path.join(dir, 'data')), [])
78
self.assert_('sources-update/language-pack-%s%s\n' % (cls, lang) in updated)