blob: 323b6c289a2959daa5a3886febc98406b3dce439 [file] [log] [blame]
Copybara854996b2021-09-07 19:36:02 +00001# Copyright 2016 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style
3# license that can be found in the LICENSE file or at
4# https://developers.google.com/open-source/licenses/bsd
5
6"""Unittest for issue tracker views."""
7from __future__ import print_function
8from __future__ import division
9from __future__ import absolute_import
10
11import unittest
12
13from features import filterrules_views
14from proto import tracker_pb2
15from testing import testing_helpers
16
17
18class RuleViewTest(unittest.TestCase):
19
20 def setUp(self):
21 self.rule = tracker_pb2.FilterRule()
22 self.rule.predicate = 'label:a label:b'
23
24 def testNone(self):
25 view = filterrules_views.RuleView(None, {})
26 self.assertEqual('', view.action_type)
27 self.assertEqual('', view.action_value)
28
29 def testEmpty(self):
30 view = filterrules_views.RuleView(self.rule, {})
31 self.rule.predicate = ''
32 self.assertEqual('', view.predicate)
33 self.assertEqual('', view.action_type)
34 self.assertEqual('', view.action_value)
35
36 def testDefaultStatus(self):
37 self.rule.default_status = 'Unknown'
38 view = filterrules_views.RuleView(self.rule, {})
39 self.assertEqual('label:a label:b', view.predicate)
40 self.assertEqual('default_status', view.action_type)
41 self.assertEqual('Unknown', view.action_value)
42
43 def testDefaultOwner(self):
44 self.rule.default_owner_id = 111
45 view = filterrules_views.RuleView(
46 self.rule, {
47 111: testing_helpers.Blank(email='jrobbins@chromium.org')})
48 self.assertEqual('label:a label:b', view.predicate)
49 self.assertEqual('default_owner', view.action_type)
50 self.assertEqual('jrobbins@chromium.org', view.action_value)
51
52 def testAddCCs(self):
53 self.rule.add_cc_ids.extend([111, 222])
54 view = filterrules_views.RuleView(
55 self.rule, {
56 111: testing_helpers.Blank(email='jrobbins@chromium.org'),
57 222: testing_helpers.Blank(email='jrobbins@gmail.com')})
58 self.assertEqual('label:a label:b', view.predicate)
59 self.assertEqual('add_ccs', view.action_type)
60 self.assertEqual(
61 'jrobbins@chromium.org, jrobbins@gmail.com', view.action_value)
62
63 def testAddLabels(self):
64 self.rule.add_labels.extend(['Hot', 'Cool'])
65 view = filterrules_views.RuleView(self.rule, {})
66 self.assertEqual('label:a label:b', view.predicate)
67 self.assertEqual('add_labels', view.action_type)
68 self.assertEqual('Hot, Cool', view.action_value)
69
70 def testAlsoNotify(self):
71 self.rule.add_notify_addrs.extend(['a@dom.com', 'b@dom.com'])
72 view = filterrules_views.RuleView(self.rule, {})
73 self.assertEqual('label:a label:b', view.predicate)
74 self.assertEqual('also_notify', view.action_type)
75 self.assertEqual('a@dom.com, b@dom.com', view.action_value)