Index: native_client_sdk/src/build_tools/tests/test_update_nacl_manifest.py |
diff --git a/native_client_sdk/src/build_tools/tests/test_update_nacl_manifest.py b/native_client_sdk/src/build_tools/tests/test_update_nacl_manifest.py |
index e69f30756dcf61e22e81a67e14b8a305b4f9237c..5f2b0d983738acb5204d6feb16cb6e13ec0e834d 100755 |
--- a/native_client_sdk/src/build_tools/tests/test_update_nacl_manifest.py |
+++ b/native_client_sdk/src/build_tools/tests/test_update_nacl_manifest.py |
@@ -136,6 +136,9 @@ class MakeHistory(object): |
class MakeFiles(dict): |
+ def AddOnlineManifest(self, manifest_string): |
+ self['naclsdk_manifest2.json'] = manifest_string |
+ |
def Add(self, bundle, add_archive_for_os=OS_MLW, add_json_for_os=OS_MLW): |
for archive in bundle.GetArchives(): |
if not archive.host_os in add_archive_for_os: |
@@ -162,6 +165,7 @@ class TestDelegate(update_nacl_manifest.Delegate): |
self.files = files |
self.version_mapping = version_mapping |
self.dryrun = 0 |
+ self.called_gsutil_cp = False |
def GetRepoManifest(self): |
return self.manifest |
@@ -187,6 +191,7 @@ class TestDelegate(update_nacl_manifest.Delegate): |
return self.files[path] |
def GsUtil_cp(self, src, dest, stdin=None): |
+ self.called_gsutil_cp = True |
dest_path = GetPathFromGsUrl(dest) |
if src == '-': |
self.files[dest_path] = stdin |
@@ -237,8 +242,8 @@ class TestUpdateManifest(unittest.TestCase): |
self.delegate = TestDelegate(self.manifest, self.history.history, |
self.files, self.version_mapping) |
- def _Run(self, host_oses): |
- update_nacl_manifest.Run(self.delegate, host_oses) |
+ def _Run(self, host_oses, fixed_bundle_versions=None): |
+ update_nacl_manifest.Run(self.delegate, host_oses, fixed_bundle_versions) |
def _HasUploadedManifest(self): |
return 'naclsdk_manifest2.json' in self.files |
@@ -530,6 +535,54 @@ mac,canary,21.0.1156.0,2012-05-30 12:14:21.305090""" |
p19_bundle = self.uploaded_manifest.GetBundle(B19_R1_NONE.name) |
self.assertEqual(p19_bundle.stability, STABLE) |
+ def testDontPushIfNoChange(self): |
+ # Make an online manifest that already has this bundle. |
+ online_manifest = MakeManifest(B18_0_1025_163_R1_MLW) |
+ self.files.AddOnlineManifest(online_manifest.GetDataAsString()) |
+ |
+ self.manifest = MakeManifest(B18_R1_NONE) |
+ self.history.Add(OS_MLW, DEV, V18_0_1025_163) |
+ self.files.Add(B18_0_1025_163_R1_MLW) |
+ |
+ self._MakeDelegate() |
+ self._Run(OS_MLW) |
+ self.assertEqual(False, self.delegate.called_gsutil_cp) |
Sam Clegg
2012/11/29 19:39:10
assertFalse() here and below?
binji
2012/11/30 18:55:00
Done.
|
+ |
+ def testDontPushIfRollback(self): |
+ # Make an online manifest that has a newer bundle |
+ online_manifest = MakeManifest(B18_0_1025_184_R1_MLW) |
+ self.files.AddOnlineManifest(online_manifest.GetDataAsString()) |
+ |
+ self.manifest = MakeManifest(B18_R1_NONE) |
+ self.history.Add(OS_MLW, DEV, V18_0_1025_163) |
+ self.files.Add(B18_0_1025_163_R1_MLW) |
+ |
+ self._MakeDelegate() |
+ self._Run(OS_MLW) |
+ self.assertEqual(False, self.delegate.called_gsutil_cp) |
+ |
+ def testRunWithFixedBundleVersions(self): |
+ self.manifest = MakeManifest(B18_R1_NONE) |
+ self.history.Add(OS_MLW, BETA, V18_0_1025_163) |
+ self.files.Add(B18_0_1025_163_R1_MLW) |
+ self.files.Add(B18_0_1025_184_R1_MLW) |
+ |
+ self._MakeDelegate() |
+ self._Run(OS_MLW, [('pepper_18', '18.0.1025.184')]) |
+ self._ReadUploadedManifest() |
+ self._AssertUploadedManifestHasBundle(B18_0_1025_184_R1_MLW, BETA) |
+ self.assertEqual(len(self.uploaded_manifest.GetBundles()), 1) |
+ |
+ def testRunWithMissingFixedBundleVersions(self): |
+ self.manifest = MakeManifest(B18_R1_NONE) |
+ self.history.Add(OS_MLW, BETA, V18_0_1025_163) |
+ self.files.Add(B18_0_1025_163_R1_MLW) |
+ |
+ self._MakeDelegate() |
+ self._Run(OS_MLW, [('pepper_18', '18.0.1025.184')]) |
+ # Nothing should be uploaded if the user gives a missing fixed version. |
+ self.assertEqual(False, self.delegate.called_gsutil_cp) |
+ |
class TestUpdateVitals(unittest.TestCase): |
def setUp(self): |