BuildAPI: Have GetBuilderMetadata handle find_fingerprints return [].

BUG=chromium:1071620
TEST=manual, run_tests

Change-Id: Ief3730ea75c21f9f47023b68481738e55828f573
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2238550
Reviewed-by: Alex Klein <saklein@chromium.org>
Commit-Queue: Michael Mortensen <mmortensen@google.com>
Tested-by: Michael Mortensen <mmortensen@google.com>
diff --git a/api/controller/packages_unittest.py b/api/controller/packages_unittest.py
index db1571e..3a69774 100644
--- a/api/controller/packages_unittest.py
+++ b/api/controller/packages_unittest.py
@@ -686,6 +686,22 @@
         self.response.model_metadata[1].main_readwrite_firmware_version,
         'Google_Reef.9042.110.0')
 
+    # Test corner case where find_fingerprints returns None.
+    # Re-patch find_fingerprints to now return None and re-execute
+    # GetBuilderMetadata to verify behavior.
+    response = packages_pb2.GetBuilderMetadataResponse()
+    self.PatchObject(packages_service, 'find_fingerprints',
+                     return_value=[])
+    request = self._GetRequest(board='betty')
+    packages_controller.GetBuilderMetadata(request, response,
+                                           self.api_config)
+    # Verify a non-fingerprint build_target_metdata field was still set.
+    self.assertEqual(
+        response.build_target_metadata[0].kernel_version,
+        '4.4.223-r2209')
+    # And then verify that fingerprints was empty.
+    self.assertEqual(response.build_target_metadata[0].fingerprints, [])
+
 
 class HasChromePrebuiltTest(cros_test_lib.MockTestCase, ApiConfigMixin):
   """HasChromePrebuilt tests."""