diff --git a/api/controller/payload_unittest.py b/api/controller/payload_unittest.py
index 9b86630..a40ce2f 100644
--- a/api/controller/payload_unittest.py
+++ b/api/controller/payload_unittest.py
@@ -13,99 +13,122 @@
 from chromite.lib.paygen import paygen_payload_lib
 
 
-class PayloadApiTests(cros_test_lib.MockTempDirTestCase,
-                      api_config.ApiConfigMixin):
-  """Unittests for PayloadApi."""
+class PayloadApiTests(
+    cros_test_lib.MockTempDirTestCase, api_config.ApiConfigMixin
+):
+    """Unittests for PayloadApi."""
 
-  def setUp(self):
-    self.response = payload_pb2.GenerationResponse()
+    def setUp(self):
+        self.response = payload_pb2.GenerationResponse()
 
-    src_build = payload_pb2.Build(version='1.0.0', bucket='test',
-                                  channel='test-channel', build_target=
-                                  common_pb2.BuildTarget(name='cave'))
+        src_build = payload_pb2.Build(
+            version="1.0.0",
+            bucket="test",
+            channel="test-channel",
+            build_target=common_pb2.BuildTarget(name="cave"),
+        )
 
-    src_image = payload_pb2.UnsignedImage(
-        build=src_build, image_type=6, milestone='R70')
+        src_image = payload_pb2.UnsignedImage(
+            build=src_build, image_type=6, milestone="R70"
+        )
 
-    tgt_build = payload_pb2.Build(version='2.0.0', bucket='test',
-                                  channel='test-channel', build_target=
-                                  common_pb2.BuildTarget(name='cave'))
+        tgt_build = payload_pb2.Build(
+            version="2.0.0",
+            bucket="test",
+            channel="test-channel",
+            build_target=common_pb2.BuildTarget(name="cave"),
+        )
 
-    tgt_image = payload_pb2.UnsignedImage(
-        build=tgt_build, image_type=6, milestone='R70')
+        tgt_image = payload_pb2.UnsignedImage(
+            build=tgt_build, image_type=6, milestone="R70"
+        )
 
-    self.req = payload_pb2.GenerationRequest(
-        tgt_unsigned_image=tgt_image,
-        src_unsigned_image=src_image,
-        bucket='test-destination-bucket',
-        verify=True,
-        keyset='update_signer',
-        dryrun=False)
+        self.req = payload_pb2.GenerationRequest(
+            tgt_unsigned_image=tgt_image,
+            src_unsigned_image=src_image,
+            bucket="test-destination-bucket",
+            verify=True,
+            keyset="update_signer",
+            dryrun=False,
+        )
 
-    self.minios_req = payload_pb2.GenerationRequest(
-        tgt_unsigned_image=tgt_image,
-        src_unsigned_image=src_image,
-        bucket='test-destination-bucket',
-        minios=True,
-        verify=True,
-        keyset='update_signer',
-        dryrun=False)
+        self.minios_req = payload_pb2.GenerationRequest(
+            tgt_unsigned_image=tgt_image,
+            src_unsigned_image=src_image,
+            bucket="test-destination-bucket",
+            minios=True,
+            verify=True,
+            keyset="update_signer",
+            dryrun=False,
+        )
 
-    self.result = payload_pb2.GenerationResponse(
-        success=True,
-        local_path='/tmp/aohiwdadoi/delta.bin',
-        remote_uri='gs://something')
+        self.result = payload_pb2.GenerationResponse(
+            success=True,
+            local_path="/tmp/aohiwdadoi/delta.bin",
+            remote_uri="gs://something",
+        )
 
-    self.PatchObject(payload, '_DEFAULT_PAYGEN_CACHE_DIR',
-                     new=str(self.tempdir))
+        self.PatchObject(
+            payload, "_DEFAULT_PAYGEN_CACHE_DIR", new=str(self.tempdir)
+        )
 
-  def testValidateOnly(self):
-    """Basic check that a validate only call does not execute any logic."""
+    def testValidateOnly(self):
+        """Basic check that a validate only call does not execute any logic."""
 
-    res = payload.GeneratePayload(self.req, self.result,
-                                  self.validate_only_config)
-    self.assertEqual(res, controller.RETURN_CODE_VALID_INPUT)
+        res = payload.GeneratePayload(
+            self.req, self.result, self.validate_only_config
+        )
+        self.assertEqual(res, controller.RETURN_CODE_VALID_INPUT)
 
-  def testCallSucceeds(self):
-    """Check that a call is made successfully."""
-    # Deep patch the paygen lib, this is a full run through service as well.
-    patch_obj = self.PatchObject(paygen_payload_lib, 'PaygenPayload')
-    patch_obj.return_value.Run.return_value = 'gs://something'
-    res = payload.GeneratePayload(self.req, self.result, self.api_config)
-    self.assertEqual(res, controller.RETURN_CODE_SUCCESS)
+    def testCallSucceeds(self):
+        """Check that a call is made successfully."""
+        # Deep patch the paygen lib, this is a full run through service as well.
+        patch_obj = self.PatchObject(paygen_payload_lib, "PaygenPayload")
+        patch_obj.return_value.Run.return_value = "gs://something"
+        res = payload.GeneratePayload(self.req, self.result, self.api_config)
+        self.assertEqual(res, controller.RETURN_CODE_SUCCESS)
 
-  def testMockError(self):
-    """Test mock error call does not execute any logic, returns error."""
-    patch = self.PatchObject(paygen_payload_lib, 'PaygenPayload')
+    def testMockError(self):
+        """Test mock error call does not execute any logic, returns error."""
+        patch = self.PatchObject(paygen_payload_lib, "PaygenPayload")
 
-    res = payload.GeneratePayload(self.req, self.result,
-                                  self.mock_error_config)
-    patch.assert_not_called()
-    self.assertEqual(controller.RETURN_CODE_COMPLETED_UNSUCCESSFULLY, res)
+        res = payload.GeneratePayload(
+            self.req, self.result, self.mock_error_config
+        )
+        patch.assert_not_called()
+        self.assertEqual(controller.RETURN_CODE_COMPLETED_UNSUCCESSFULLY, res)
 
-  def testMockCall(self):
-    """Test mock call does not execute any logic, returns success."""
-    patch = self.PatchObject(paygen_payload_lib, 'PaygenPayload')
+    def testMockCall(self):
+        """Test mock call does not execute any logic, returns success."""
+        patch = self.PatchObject(paygen_payload_lib, "PaygenPayload")
 
-    res = payload.GeneratePayload(self.req, self.result,
-                                  self.mock_call_config)
-    patch.assert_not_called()
-    self.assertEqual(controller.RETURN_CODE_SUCCESS, res)
+        res = payload.GeneratePayload(
+            self.req, self.result, self.mock_call_config
+        )
+        patch.assert_not_called()
+        self.assertEqual(controller.RETURN_CODE_SUCCESS, res)
 
-  def testMiniOSSuccess(self):
-    """Test a miniOS paygen request."""
-    patch = self.PatchObject(paygen_payload_lib, 'PaygenPayload')
-    patch.return_value.Run.return_value = 'gs://minios/something'
-    res = payload.GeneratePayload(self.minios_req, self.result, self.api_config)
-    self.assertEqual(res, controller.RETURN_CODE_SUCCESS)
+    def testMiniOSSuccess(self):
+        """Test a miniOS paygen request."""
+        patch = self.PatchObject(paygen_payload_lib, "PaygenPayload")
+        patch.return_value.Run.return_value = "gs://minios/something"
+        res = payload.GeneratePayload(
+            self.minios_req, self.result, self.api_config
+        )
+        self.assertEqual(res, controller.RETURN_CODE_SUCCESS)
 
-  def testNoMiniOSPartition(self):
-    """Test a miniOS paygen request on an image with no miniOS part."""
-    patch = self.PatchObject(paygen_payload_lib, 'PaygenPayload')
-    patch.side_effect = paygen_payload_lib.NoMiniOSPartitionException
-    response_code = payload.GeneratePayload(self.minios_req, self.result,
-                                            self.api_config)
-    self.assertEqual(self.result.failure_reason,
-                     payload_pb2.GenerationResponse.NOT_MINIOS_COMPATIBLE)
-    self.assertEqual(response_code,
-                     controller.RETURN_CODE_UNSUCCESSFUL_RESPONSE_AVAILABLE)
+    def testNoMiniOSPartition(self):
+        """Test a miniOS paygen request on an image with no miniOS part."""
+        patch = self.PatchObject(paygen_payload_lib, "PaygenPayload")
+        patch.side_effect = paygen_payload_lib.NoMiniOSPartitionException
+        response_code = payload.GeneratePayload(
+            self.minios_req, self.result, self.api_config
+        )
+        self.assertEqual(
+            self.result.failure_reason,
+            payload_pb2.GenerationResponse.NOT_MINIOS_COMPATIBLE,
+        )
+        self.assertEqual(
+            response_code,
+            controller.RETURN_CODE_UNSUCCESSFUL_RESPONSE_AVAILABLE,
+        )
