Merge branch 'main' into avm99963-monorail

Merged commit 34d8229ae2b51fb1a15bd208e6fe6185c94f6266

GitOrigin-RevId: 7ee0917f93a577e475f8e09526dd144d245593f4
diff --git a/api/v3/test/issues_servicer_test.py b/api/v3/test/issues_servicer_test.py
index cb01014..bf02855 100644
--- a/api/v3/test/issues_servicer_test.py
+++ b/api/v3/test/issues_servicer_test.py
@@ -1,7 +1,6 @@
-# Copyright 2020 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file or at
-# https://developers.google.com/open-source/licenses/bsd
+# Copyright 2020 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
 
 """Tests for the issues servicer."""
 from __future__ import print_function
@@ -20,7 +19,7 @@
 from framework import framework_helpers
 from framework import monorailcontext
 from framework import permissions
-from proto import tracker_pb2
+from mrproto import tracker_pb2
 from testing import fake
 from services import service_manager
 
@@ -172,7 +171,7 @@
     request = issues_pb2.BatchGetIssuesRequest(
         parent='projects/cow',
         names=['projects/cow/issues/1235', 'projects/chicken/issues/1234'])
-    with self.assertRaisesRegexp(
+    with self.assertRaisesRegex(
         exceptions.InputException,
         'projects/chicken/issues/1234 is not a child issue of projects/cow.'):
       self.CallWrapped(self.issues_svcr.BatchGetIssues, mc, request)
@@ -180,7 +179,7 @@
     request = issues_pb2.BatchGetIssuesRequest(
         parent='projects/sheep',
         names=['projects/cow/issues/1235', 'projects/chicken/issues/1234'])
-    with self.assertRaisesRegexp(
+    with self.assertRaisesRegex(
         exceptions.InputException,
         'projects/cow/issues/1235 is not a child issue of projects/sheep.\n' +
         'projects/chicken/issues/1234 is not a child issue of projects/sheep.'):
@@ -189,7 +188,7 @@
     request = issues_pb2.BatchGetIssuesRequest(
         parent='projects/cow',
         names=['projects/cow/badformat/1235', 'projects/chicken/issues/1234'])
-    with self.assertRaisesRegexp(
+    with self.assertRaisesRegex(
         exceptions.InputException,
         'Invalid resource name: projects/cow/badformat/1235.'):
       self.CallWrapped(self.issues_svcr.BatchGetIssues, mc, request)
@@ -201,10 +200,10 @@
     request = issues_pb2.BatchGetIssuesRequest(
         parent='projects/chicken',
         names=['projects/chicken/issues/1', 'projects/chicken/issues/2'])
-    with self.assertRaisesRegexp(
+    with self.assertRaisesRegex(
         exceptions.NoSuchIssueException,
-        "\['projects/chicken/issues/1', 'projects/chicken/issues/2'\] not found"
-    ):
+        r"\['projects/chicken/issues/1', 'projects/chicken/issues/2'\] "
+        'not found'):
       self.CallWrapped(self.issues_svcr.BatchGetIssues, mc, request)
 
   @mock.patch('api.v3.api_constants.MAX_BATCH_ISSUES', 2)
@@ -491,8 +490,10 @@
         parent='projects/chicken',
         issue=request_issue,
         description='description',
-        uploads=[issues_pb2.AttachmentUpload(
-            filename='mowgli.gif', content='cute dog')],
+        uploads=[
+            issues_pb2.AttachmentUpload(
+                filename='mowgli.gif', content=b'cute dog')
+        ],
     )
     mc = monorailcontext.MonorailContext(
         self.services, cnxn=self.cnxn, requester=self.owner.email)
@@ -512,9 +513,9 @@
         uploads=[issues_pb2.AttachmentUpload(
             filename='mowgli.gif')],
     )
-    with self.assertRaisesRegexp(
-      exceptions.InputException,
-      'Uploaded atachment missing filename or content'):
+    with self.assertRaisesRegex(
+        exceptions.InputException,
+        'Uploaded atachment missing filename or content'):
       self.CallWrapped(self.issues_svcr.MakeIssue, mc, unValid_request)
 
 
@@ -542,12 +543,15 @@
             issues_pb2.IssueDelta(
                 issue=issue_objects_pb2.Issue(
                     name='projects/proj-780/issues/1',
-                    labels=[issue_objects_pb2.Issue.LabelValue(
-                        label='add-me')]),
+                    labels=[issue_objects_pb2.Issue.LabelValue(label='add-me')
+                           ]),
                 update_mask=field_mask_pb2.FieldMask(paths=['labels']),
-                labels_remove=['remove-me'])],
-        uploads=[issues_pb2.AttachmentUpload(
-            filename='mowgli.gif', content='cute dog')],
+                labels_remove=['remove-me'])
+        ],
+        uploads=[
+            issues_pb2.AttachmentUpload(
+                filename='mowgli.gif', content=b'cute dog')
+        ],
         comment_content='Release the chicken.',
         notify_type=issues_pb2.NotifyType.Value('NO_NOTIFICATION'))
 
@@ -555,6 +559,7 @@
         self.issues_svcr.ModifyIssues, mc, request)
     exp_issue.labels = ['keep-me', 'add-me']
     exp_issue.modified_timestamp = 12345
+    exp_issue.migration_modified_timestamp = 12345
     exp_api_issue = self.issues_svcr.converter.ConvertIssue(exp_issue)
     self.assertEqual([iss for iss in response.issues], [exp_api_issue])
 
@@ -566,8 +571,10 @@
     # the ApplyFilterRules path. (see filter_helpers._ComputeDerivedFields)
     exp_issue.derived_owner_id = 0
     exp_issue.derived_status = ''
-    exp_attachments = [framework_helpers.AttachmentUpload(
-        'mowgli.gif', 'cute dog', 'image/gif')]
+    exp_attachments = [
+        framework_helpers.AttachmentUpload(
+            'mowgli.gif', b'cute dog', 'image/gif')
+    ]
     exp_amendments = [tracker_pb2.Amendment(
         field=tracker_pb2.FieldID.LABELS, newvalue='-remove-me add-me')]
     self.services.issue.CreateIssueComment.assert_called_once_with(
@@ -595,7 +602,7 @@
             issues_pb2.IssueDelta(),
             issues_pb2.IssueDelta()
         ])
-    with self.assertRaisesRegexp(
+    with self.assertRaisesRegex(
         exceptions.InputException,
         'Requesting 3 updates when the allowed maximum is 2 updates.'):
       self.CallWrapped(self.issues_svcr.ModifyIssues, mc, request)
@@ -614,7 +621,7 @@
                     blocking_issue_refs=issue_ref_list),
                 blocking_issues_remove=issue_ref_list)
         ])
-    with self.assertRaisesRegexp(
+    with self.assertRaisesRegex(
         exceptions.InputException,
         'Updates include 5 impacted issues when the allowed maximum is 4.'):
       self.CallWrapped(self.issues_svcr.ModifyIssues, mc, request)