Index: appengine/monorail/features/test/savedqueries_helpers_test.py |
diff --git a/appengine/monorail/features/test/savedqueries_helpers_test.py b/appengine/monorail/features/test/savedqueries_helpers_test.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d23129483877d5fcfd4329ad460575fd3e2db3ed |
--- /dev/null |
+++ b/appengine/monorail/features/test/savedqueries_helpers_test.py |
@@ -0,0 +1,106 @@ |
+# Copyright 2016 The Chromium Authors. All rights reserved. |
+# Use of this source code is govered by a BSD-style |
+# license that can be found in the LICENSE file or at |
+# https://developers.google.com/open-source/licenses/bsd |
+ |
+"""Unit tests for savedqueries_helpers feature.""" |
+ |
+import unittest |
+ |
+import mox |
+ |
+from features import savedqueries_helpers |
+from testing import fake |
+from tracker import tracker_bizobj |
+ |
+ |
+class SavedQueriesHelperTest(unittest.TestCase): |
+ |
+ def setUp(self): |
+ self.features = fake.FeaturesService() |
+ self.project = fake.ProjectService() |
+ self.cnxn = 'fake cnxn' |
+ self.mox = mox.Mox() |
+ |
+ def tearDown(self): |
+ self.mox.UnsetStubs() |
+ self.mox.ResetAll() |
+ |
+ def testParseSavedQueries(self): |
+ post_data = { |
+ 'xyz_savedquery_name_1': '', |
+ 'xyz_savedquery_name_2': 'name2', |
+ 'xyz_savedquery_name_3': 'name3', |
+ 'xyz_savedquery_id_1': 1, |
+ 'xyz_savedquery_id_2': 2, |
+ 'xyz_savedquery_id_3': 3, |
+ 'xyz_savedquery_projects_1': '123', |
+ 'xyz_savedquery_projects_2': 'abc', |
+ 'xyz_savedquery_projects_3': 'def', |
+ 'xyz_savedquery_base_1': 4, |
+ 'xyz_savedquery_base_2': 5, |
+ 'xyz_savedquery_base_3': 6, |
+ 'xyz_savedquery_query_1': 'query1', |
+ 'xyz_savedquery_query_2': 'query2', |
+ 'xyz_savedquery_query_3': 'query3', |
+ 'xyz_savedquery_sub_mode_1': 'sub_mode1', |
+ 'xyz_savedquery_sub_mode_2': 'sub_mode2', |
+ 'xyz_savedquery_sub_mode_3': 'sub_mode3', |
+ } |
+ self.project.TestAddProject(name='abc', project_id=1001) |
+ self.project.TestAddProject(name='def', project_id=1002) |
+ |
+ saved_queries = savedqueries_helpers.ParseSavedQueries( |
+ self.cnxn, post_data, self.project, prefix='xyz_') |
+ self.assertEqual(2, len(saved_queries)) |
+ |
+ # pylint: disable=unbalanced-tuple-unpacking |
+ saved_query1, saved_query2 = saved_queries |
+ # Assert contents of saved_query1. |
+ self.assertEqual(2, saved_query1.query_id) |
+ self.assertEqual('name2', saved_query1.name) |
+ self.assertEqual(5, saved_query1.base_query_id) |
+ self.assertEqual('query2', saved_query1.query) |
+ self.assertEqual([1001], saved_query1.executes_in_project_ids) |
+ self.assertEqual('sub_mode2', saved_query1.subscription_mode) |
+ # Assert contents of saved_query2. |
+ self.assertEqual(3, saved_query2.query_id) |
+ self.assertEqual('name3', saved_query2.name) |
+ self.assertEqual(6, saved_query2.base_query_id) |
+ self.assertEqual('query3', saved_query2.query) |
+ self.assertEqual([1002], saved_query2.executes_in_project_ids) |
+ self.assertEqual('sub_mode3', saved_query2.subscription_mode) |
+ |
+ def testSavedQueryToCond(self): |
+ class MockSavedQuery: |
+ def __init__(self): |
+ self.base_query_id = 1 |
+ self.query = 'query' |
+ saved_query = MockSavedQuery() |
+ |
+ cond_with_no_base = savedqueries_helpers.SavedQueryToCond(saved_query) |
+ self.assertEquals('query', cond_with_no_base) |
+ |
+ self.mox.StubOutWithMock(tracker_bizobj, 'GetBuiltInQuery') |
+ tracker_bizobj.GetBuiltInQuery(1).AndReturn('base') |
+ self.mox.ReplayAll() |
+ cond_with_base = savedqueries_helpers.SavedQueryToCond(saved_query) |
+ self.assertEquals('base query', cond_with_base) |
+ self.mox.VerifyAll() |
+ |
+ def testSavedQueryIDToCond(self): |
+ self.mox.StubOutWithMock(savedqueries_helpers, 'SavedQueryToCond') |
+ savedqueries_helpers.SavedQueryToCond(mox.IgnoreArg()).AndReturn('ret') |
+ self.mox.ReplayAll() |
+ query_cond = savedqueries_helpers.SavedQueryIDToCond( |
+ self.cnxn, self.features, 1) |
+ self.assertEquals('ret', query_cond) |
+ self.mox.VerifyAll() |
+ |
+ self.mox.StubOutWithMock(tracker_bizobj, 'GetBuiltInQuery') |
+ tracker_bizobj.GetBuiltInQuery(1).AndReturn('built_in_query') |
+ self.mox.ReplayAll() |
+ query_cond = savedqueries_helpers.SavedQueryIDToCond( |
+ self.cnxn, self.features, 1) |
+ self.assertEquals('built_in_query', query_cond) |
+ self.mox.VerifyAll() |