Add script to fetch a file from CIPD.

BUG=chromium:1096407
TEST=manually verified with crrev.com/c/2251682
TEST=run_pytest scripts/fetch_cipd_unittest.py

Change-Id: I7a725f4c789f9b4935c3be91ec0e901209731770
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2287020
Tested-by: Tatsuhisa Yamaguchi <yamaguchi@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/scripts/fetch_cipd_unittest.py b/scripts/fetch_cipd_unittest.py
new file mode 100644
index 0000000..6652f4a
--- /dev/null
+++ b/scripts/fetch_cipd_unittest.py
@@ -0,0 +1,28 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Test fetch_cipd."""
+
+from chromite.lib import cros_test_lib
+from chromite.scripts import fetch_cipd
+
+
+class FetchCipdTest(cros_test_lib.TestCase):
+  """Tests for fetch_cipd script."""
+
+  def testParseCipdUri(self):
+    uri = 'cipd://chromiumos/infra/tclint/linux-amd64:abcdefghijklm'
+    path, version = fetch_cipd.ParseCipdUri(uri)
+    self.assertEqual('chromiumos/infra/tclint/linux-amd64', path)
+    self.assertEqual('abcdefghijklm', version)
+
+  def testParseCipdUriWrongScheme(self):
+    uri = 'gs://chromiumos/infra/tclint/linux-amd64:abcdefghijklm'
+    with self.assertRaises(ValueError):
+      fetch_cipd.ParseCipdUri(uri)
+
+  def testParseCipdUriNoVersion(self):
+    uri = 'cipd://chromiumos/infra/tclint/linux-amd64'
+    with self.assertRaises(ValueError):
+      fetch_cipd.ParseCipdUri(uri)