Index: appengine/monorail/features/test/filterrules_views_test.py |
diff --git a/appengine/monorail/features/test/filterrules_views_test.py b/appengine/monorail/features/test/filterrules_views_test.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..124db4fa72cd18bb5c99d22971710581f700b14d |
--- /dev/null |
+++ b/appengine/monorail/features/test/filterrules_views_test.py |
@@ -0,0 +1,71 @@ |
+# 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 |
+ |
+"""Unittest for issue tracker views.""" |
+ |
+import unittest |
+ |
+from features import filterrules_views |
+from proto import tracker_pb2 |
+from testing import testing_helpers |
+ |
+ |
+class RuleViewTest(unittest.TestCase): |
+ |
+ def setUp(self): |
+ self.rule = tracker_pb2.FilterRule() |
+ self.rule.predicate = 'label:a label:b' |
+ |
+ def testEmpty(self): |
+ view = filterrules_views.RuleView(self.rule, {}) |
+ self.rule.predicate = '' |
+ self.assertEquals('', view.predicate) |
+ self.assertEquals('', view.action_type) |
+ self.assertEquals('', view.action_value) |
+ |
+ def testDefaultStatus(self): |
+ self.rule.default_status = 'Unknown' |
+ view = filterrules_views.RuleView(self.rule, {}) |
+ self.assertEquals('label:a label:b', view.predicate) |
+ self.assertEquals('default_status', view.action_type) |
+ self.assertEquals('Unknown', view.action_value) |
+ |
+ def testDefaultOwner(self): |
+ self.rule.default_owner_id = 111L |
+ view = filterrules_views.RuleView( |
+ self.rule, { |
+ 111L: testing_helpers.Blank(email='jrobbins@chromium.org')}) |
+ self.assertEquals('label:a label:b', view.predicate) |
+ self.assertEquals('default_owner', view.action_type) |
+ self.assertEquals('jrobbins@chromium.org', view.action_value) |
+ |
+ def testAddCCs(self): |
+ self.rule.add_cc_ids.extend([111L, 222L]) |
+ view = filterrules_views.RuleView( |
+ self.rule, { |
+ 111L: testing_helpers.Blank(email='jrobbins@chromium.org'), |
+ 222L: testing_helpers.Blank(email='jrobbins@gmail.com')}) |
+ self.assertEquals('label:a label:b', view.predicate) |
+ self.assertEquals('add_ccs', view.action_type) |
+ self.assertEquals('jrobbins@chromium.org, jrobbins@gmail.com', |
+ view.action_value) |
+ |
+ def testAddLabels(self): |
+ self.rule.add_labels.extend(['Hot', 'Cool']) |
+ view = filterrules_views.RuleView(self.rule, {}) |
+ self.assertEquals('label:a label:b', view.predicate) |
+ self.assertEquals('add_labels', view.action_type) |
+ self.assertEquals('Hot, Cool', view.action_value) |
+ |
+ def testAlsoNotify(self): |
+ self.rule.add_notify_addrs.extend(['a@dom.com', 'b@dom.com']) |
+ view = filterrules_views.RuleView(self.rule, {}) |
+ self.assertEquals('label:a label:b', view.predicate) |
+ self.assertEquals('also_notify', view.action_type) |
+ self.assertEquals('a@dom.com, b@dom.com', view.action_value) |
+ |
+ |
+if __name__ == '__main__': |
+ unittest.main() |