Make stats upload more robust.
Print exceptions resulting from creation of the Stats object, but don't
quit the script.
BUG=chromium:236714
TEST=Unit tests, ran locally.
Change-Id: Ica6ec7fd9bcc5b7b54de69af391e4e2e8258e37b
Reviewed-on: https://gerrit.chromium.org/gerrit/49611
Commit-Queue: Ryan Cui <rcui@chromium.org>
Reviewed-by: Ryan Cui <rcui@chromium.org>
Tested-by: Ryan Cui <rcui@chromium.org>
diff --git a/scripts/deploy_chrome_unittest.py b/scripts/deploy_chrome_unittest.py
index 7ec57ba..8901e95 100755
--- a/scripts/deploy_chrome_unittest.py
+++ b/scripts/deploy_chrome_unittest.py
@@ -18,6 +18,9 @@
from chromite.lib import osutils
from chromite.lib import partial_mock
from chromite.lib import remote_access_unittest
+from chromite.lib import stats
+from chromite.lib import stats_unittest
+
from chromite.scripts import deploy_chrome
@@ -116,6 +119,26 @@
pass
+class MainTest(cros_test_lib.MockLoggingTestCase):
+
+ def setUp(self):
+ self.PatchObject(deploy_chrome.DeployChrome, 'Perform', autospec=True)
+ self.stats_module_mock = stats_unittest.StatsModuleMock()
+ self.StartPatcher(self.stats_module_mock)
+
+ def testStatsUpload(self, call_count=1):
+ """The stats upload path."""
+ deploy_chrome.main(['--board=lumpy', '--staging-only',
+ '--build-dir=/tmp/abc'])
+ self.assertEquals(stats.StatsUploader._Upload.call_count, call_count)
+
+ def testStatsUploadError(self):
+ """Don't upload stats if we fail to create it."""
+ self.stats_module_mock.stats_mock.init_exception = True
+ with cros_test_lib.LoggingCapturer():
+ self.testStatsUpload(call_count=0)
+
+
class DeployTest(cros_test_lib.MockTempDirTestCase):
def _GetDeployChrome(self, args):
options, _ = _ParseCommandLine(args)