Merge branch 'main' into avm99963-monorail
Merged commit 34d8229ae2b51fb1a15bd208e6fe6185c94f6266
GitOrigin-RevId: 7ee0917f93a577e475f8e09526dd144d245593f4
diff --git a/mrproto/test/__init__.py b/mrproto/test/__init__.py
new file mode 100644
index 0000000..68130d5
--- /dev/null
+++ b/mrproto/test/__init__.py
@@ -0,0 +1,3 @@
+# Copyright 2016 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
diff --git a/mrproto/test/ast_pb2_test.py b/mrproto/test/ast_pb2_test.py
new file mode 100644
index 0000000..91bb8ec
--- /dev/null
+++ b/mrproto/test/ast_pb2_test.py
@@ -0,0 +1,27 @@
+# Copyright 2016 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 ast_pb2 functions."""
+
+from __future__ import print_function
+from __future__ import division
+from __future__ import absolute_import
+
+import unittest
+
+from mrproto import ast_pb2
+from mrproto import tracker_pb2
+
+
+class ASTPb2Test(unittest.TestCase):
+
+ def testCond(self):
+ fd = tracker_pb2.FieldDef(field_id=1, field_name='Size')
+ cond = ast_pb2.MakeCond(
+ ast_pb2.QueryOp.EQ, [fd], ['XL'], [], key_suffix='-approver')
+ self.assertEqual(ast_pb2.QueryOp.EQ, cond.op)
+ self.assertEqual([fd], cond.field_defs)
+ self.assertEqual(['XL'], cond.str_values)
+ self.assertEqual([], cond.int_values)
+ self.assertEqual(cond.key_suffix, '-approver')
diff --git a/mrproto/test/features_pb2_test.py b/mrproto/test/features_pb2_test.py
new file mode 100644
index 0000000..fd145dc
--- /dev/null
+++ b/mrproto/test/features_pb2_test.py
@@ -0,0 +1,55 @@
+# Copyright 2016 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 features_pb2 functions."""
+
+from __future__ import print_function
+from __future__ import division
+from __future__ import absolute_import
+
+import unittest
+
+from mrproto import features_pb2
+
+
+class FeaturesPb2Test(unittest.TestCase):
+
+ def testMakeHotlist_Defaults(self):
+ hotlist = features_pb2.MakeHotlist('summer-issues')
+ self.assertEqual('summer-issues', hotlist.name)
+ self.assertEqual([], hotlist.items)
+
+ def testMakeHotlist_Everything(self):
+ ts = 20011111111111
+ hotlist = features_pb2.MakeHotlist(
+ 'summer-issues', [(1000, 1, 444, ts, ''), (1001, 2, 333, ts, ''),
+ (1009, None, None, ts, '')],
+ description='desc')
+ self.assertEqual('summer-issues', hotlist.name)
+ self.assertEqual(
+ [features_pb2.MakeHotlistItem(
+ 1000, rank=1, adder_id=444, date_added=ts, note=''),
+ features_pb2.MakeHotlistItem(
+ 1001, rank=2, adder_id=333, date_added=ts, note=''),
+ features_pb2.MakeHotlistItem(1009, date_added=ts, note=''),
+ ],
+ hotlist.items)
+ self.assertEqual('desc', hotlist.description)
+
+ def testMakeHotlistItem(self):
+ ts = 20011111111111
+ item_1 = features_pb2.MakeHotlistItem(
+ 1000, rank=1, adder_id=111, date_added=ts, note='short note')
+ self.assertEqual(1000, item_1.issue_id)
+ self.assertEqual(1, item_1.rank)
+ self.assertEqual(111, item_1.adder_id)
+ self.assertEqual(ts, item_1.date_added)
+ self.assertEqual('short note', item_1.note)
+
+ item_2 = features_pb2.MakeHotlistItem(1001)
+ self.assertEqual(1001, item_2.issue_id)
+ self.assertEqual(None, item_2.rank)
+ self.assertEqual(None, item_2.adder_id)
+ self.assertEqual('', item_2.note)
+ self.assertEqual(features_pb2.ADDED_TS_FEATURE_LAUNCH_TS, item_2.date_added)
diff --git a/mrproto/test/project_pb2_test.py b/mrproto/test/project_pb2_test.py
new file mode 100644
index 0000000..c9f8e61
--- /dev/null
+++ b/mrproto/test/project_pb2_test.py
@@ -0,0 +1,52 @@
+# Copyright 2016 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 project_pb2 functions."""
+
+from __future__ import print_function
+from __future__ import division
+from __future__ import absolute_import
+
+import unittest
+
+from mrproto import project_pb2
+
+
+class ProjectPb2Test(unittest.TestCase):
+
+ def testMakeProject_Defaults(self):
+ project = project_pb2.MakeProject('proj')
+ self.assertEqual('proj', project.project_name)
+ self.assertEqual(project_pb2.ProjectState.LIVE, project.state)
+ self.assertEqual(project_pb2.ProjectAccess.ANYONE, project.access)
+ self.assertFalse(project.read_only_reason)
+
+ def testMakeProject_Everything(self):
+ project = project_pb2.MakeProject(
+ 'proj', project_id=789, state=project_pb2.ProjectState.ARCHIVED,
+ access=project_pb2.ProjectAccess.MEMBERS_ONLY, summary='sum',
+ description='desc', moved_to='example.com',
+ cached_content_timestamp=1234567890, owner_ids=[111],
+ committer_ids=[222], contributor_ids=[333],
+ read_only_reason='being migrated',
+ home_page='example.com', docs_url='example.com/docs',
+ source_url='example.com/src', logo_gcs_id='logo_id',
+ logo_file_name='logo.gif')
+ self.assertEqual('proj', project.project_name)
+ self.assertEqual(789, project.project_id)
+ self.assertEqual(project_pb2.ProjectState.ARCHIVED, project.state)
+ self.assertEqual(project_pb2.ProjectAccess.MEMBERS_ONLY, project.access)
+ self.assertEqual('sum', project.summary)
+ self.assertEqual('desc', project.description)
+ self.assertEqual('example.com', project.moved_to)
+ self.assertEqual(1234567890, project.cached_content_timestamp)
+ self.assertEqual([111], project.owner_ids)
+ self.assertEqual([222], project.committer_ids)
+ self.assertEqual([333], project.contributor_ids)
+ self.assertEqual('being migrated', project.read_only_reason)
+ self.assertEqual('example.com', project.home_page)
+ self.assertEqual('example.com/docs', project.docs_url)
+ self.assertEqual('example.com/src', project.source_url)
+ self.assertEqual('logo_id', project.logo_gcs_id)
+ self.assertEqual('logo.gif', project.logo_file_name)
diff --git a/mrproto/test/user_pb2_test.py b/mrproto/test/user_pb2_test.py
new file mode 100644
index 0000000..fcfed71
--- /dev/null
+++ b/mrproto/test/user_pb2_test.py
@@ -0,0 +1,28 @@
+# Copyright 2016 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 user_pb2 functions."""
+
+from __future__ import print_function
+from __future__ import division
+from __future__ import absolute_import
+
+import unittest
+
+from mrproto import user_pb2
+
+
+class UserPb2Test(unittest.TestCase):
+
+ def testUser_Defaults(self):
+ user = user_pb2.MakeUser(111)
+ self.assertEqual(111, user.user_id)
+ self.assertFalse(user.obscure_email)
+ self.assertIsNone(user.email)
+
+ def testUser_Everything(self):
+ user = user_pb2.MakeUser(111, email='user@example.com', obscure_email=True)
+ self.assertEqual(111, user.user_id)
+ self.assertTrue(user.obscure_email)
+ self.assertEqual('user@example.com', user.email)
diff --git a/mrproto/test/usergroup_pb2_test.py b/mrproto/test/usergroup_pb2_test.py
new file mode 100644
index 0000000..26f7166
--- /dev/null
+++ b/mrproto/test/usergroup_pb2_test.py
@@ -0,0 +1,36 @@
+# Copyright 2016 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 usergroup_pb2 functions."""
+
+from __future__ import print_function
+from __future__ import division
+from __future__ import absolute_import
+
+import unittest
+
+from mrproto import usergroup_pb2
+
+
+class UserGroupPb2Test(unittest.TestCase):
+
+ def testMakeSettings_Defaults(self):
+ usergroup = usergroup_pb2.MakeSettings('anyone')
+ self.assertEqual(
+ usergroup_pb2.MemberVisibility.ANYONE,
+ usergroup.who_can_view_members)
+ self.assertIsNone(usergroup.ext_group_type)
+ self.assertEqual(0, usergroup.last_sync_time)
+ self.assertEqual([], usergroup.friend_projects)
+
+ def testMakeSettings_Everything(self):
+ usergroup = usergroup_pb2.MakeSettings(
+ 'Members', ext_group_type_str='mdb',
+ last_sync_time=1234567890, friend_projects=[789])
+ self.assertEqual(
+ usergroup_pb2.MemberVisibility.MEMBERS,
+ usergroup.who_can_view_members)
+ self.assertEqual(usergroup_pb2.GroupType.MDB, usergroup.ext_group_type)
+ self.assertEqual(1234567890, usergroup.last_sync_time)
+ self.assertEqual([789], usergroup.friend_projects)