← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~cjohnston/launchpad/1313576-release-hashes into lp:launchpad

 

Chris Johnston has proposed merging lp:~cjohnston/launchpad/1313576-release-hashes into lp:launchpad.

Commit message:
Add hashes for Translation-$lang into the Release file

Requested reviews:
  William Grant (wgrant): code
  Celso Providelo (cprov)

For more details, see:
https://code.launchpad.net/~cjohnston/launchpad/1313576-release-hashes/+merge/228744
-- 
https://code.launchpad.net/~cjohnston/launchpad/1313576-release-hashes/+merge/228744
Your team Launchpad code reviewers is subscribed to branch lp:launchpad.
=== modified file 'lib/lp/archivepublisher/publishing.py'
--- lib/lp/archivepublisher/publishing.py	2014-07-28 01:58:49 +0000
+++ lib/lp/archivepublisher/publishing.py	2014-07-30 01:37:03 +0000
@@ -900,8 +900,8 @@
         self.log.debug("Writing Index file for %s/%s/i18n" % (
             suite, component))
 
-        i18n_dir = os.path.join(self._config.distsroot, suite, component,
-                                "i18n")
+        i18n_subpath = os.path.join(component, "i18n")
+        i18n_dir = os.path.join(self._config.distsroot, suite, i18n_subpath)
         i18n_files = []
         try:
             for i18n_file in os.listdir(i18n_dir):
@@ -923,13 +923,15 @@
         i18n_index = I18nIndex()
         for i18n_file in sorted(i18n_files):
             entry = self._readIndexFileContents(
-                suite, os.path.join(component, "i18n", i18n_file))
+                suite, os.path.join(i18n_subpath, i18n_file))
             if entry is None:
                 continue
             i18n_index.setdefault("SHA1", []).append({
                 "sha1": hashlib.sha1(entry).hexdigest(),
                 "name": i18n_file,
                 "size": len(entry)})
+            # Schedule i18n files for inclusion in the Release file.
+            all_series_files.add(os.path.join(i18n_subpath, i18n_file))
 
         with open(os.path.join(i18n_dir, "Index"), "w") as f:
             i18n_index.dump(f, "utf-8")

=== modified file 'lib/lp/archivepublisher/tests/test_publisher.py'
--- lib/lp/archivepublisher/tests/test_publisher.py	2014-07-28 01:58:49 +0000
+++ lib/lp/archivepublisher/tests/test_publisher.py	2014-07-30 01:37:03 +0000
@@ -1560,19 +1560,28 @@
         publisher.C_doFTPArchive(False)
         publisher.D_writeReleaseFiles(False)
 
-        i18n_index = os.path.join(
-            self.config.distsroot, 'breezy-autotest', 'main', 'i18n', 'Index')
+        series = os.path.join(self.config.distsroot, 'breezy-autotest')
+        i18n_index = os.path.join(series, 'main', 'i18n', 'Index')
 
         # The i18n/Index file has been generated.
         self.assertTrue(os.path.exists(i18n_index))
 
         # It is listed correctly in Release.
-        release = self.parseRelease(os.path.join(
-            self.config.distsroot, 'breezy-autotest', 'Release'))
+        release = self.parseRelease(os.path.join(series, 'Release'))
         with open(i18n_index) as i18n_index_file:
             self.assertReleaseContentsMatch(
                 release, 'main/i18n/Index', i18n_index_file.read())
 
+        files = ['main/i18n/Translation-en.bz2',
+                 'universe/i18n/Translation-en.bz2',
+                 'multiverse/i18n/Translation-en.bz2',
+                 'multiverse/i18n/Translation-en.bz2']
+        release_path = os.path.join(series, 'Release')
+        with open(release_path) as release_file:
+            content = release_file.read()
+            for file in files:
+                self.assertIn(file, content)
+
     def testCreateSeriesAliasesNoAlias(self):
         """createSeriesAliases has nothing to do by default."""
         publisher = Publisher(
@@ -1683,10 +1692,14 @@
         self.assertEqual(str(len(translation_en_contents)),
                          i18n_index['sha1'][0]['size'])
 
-        # i18n/Index is scheduled for inclusion in Release.
-        self.assertEqual(1, len(all_files))
+        # i18n/Index and i18n/Translation-en.bz2 are scheduled for inclusion
+        # in Release.
+        self.assertEqual(2, len(all_files))
         self.assertEqual(
             os.path.join('main', 'i18n', 'Index'), all_files.pop())
+        self.assertEqual(
+            os.path.join('main', 'i18n', 'Translation-en.bz2'),
+                         all_files.pop())
 
     def testWriteSuiteI18nMissingDirectory(self):
         """i18n/Index is not generated when the i18n directory is missing."""


Follow ups