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