Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(327)

Side by Side Diff: appengine/monorail/framework/test/grid_view_helpers_test.py

Issue 1868553004: Open Source Monorail (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Rebase Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # Copyright 2016 The Chromium Authors. All rights reserved.
2 # Use of this source code is govered 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 """Unit tests for grid_view_helpers classes and functions."""
7
8 import unittest
9
10 from framework import framework_constants
11 from framework import framework_views
12 from framework import grid_view_helpers
13 from testing import fake
14 from tracker import tracker_bizobj
15
16
17 class GridViewHelpersTest(unittest.TestCase):
18
19 def setUp(self):
20 self.default_cols = 'a b c'
21 self.builtin_cols = 'a b x y z'
22 self.config = tracker_bizobj.MakeDefaultProjectIssueConfig(789)
23
24 self.art1 = fake.MakeTestIssue(
25 789, 1, 'a summary', '', 0, derived_owner_id=111L, star_count=12,
26 derived_labels='Priority-Medium Hot Mstone-1 Mstone-2',
27 derived_status='Overdue')
28 self.art2 = fake.MakeTestIssue(
29 789, 1, 'a summary', 'New', 111L, star_count=12, merged_into=200001,
30 labels='Priority-Medium Type-DEFECT Hot Mstone-1 Mstone-2')
31 self.users_by_id = {
32 111L: framework_views.UserView(111, 'foo@example.com', True),
33 }
34
35 def testSortGridHeadings(self):
36 config = fake.MakeTestConfig(
37 789, labels=('Priority-High Priority-Medium Priority-Low Hot Cold '
38 'Milestone-Near Milestone-Far'),
39 statuses=('New Accepted Started Fixed WontFix Invalid Duplicate'))
40 asc_accessors = {
41 'id': 'some function that is not called',
42 'reporter': 'some function that is not called',
43 'opened': 'some function that is not called',
44 'modified': 'some function that is not called',
45 }
46
47 # Verify that status headings are sorted according the the status
48 # values defined in the config.
49 col_name = 'status'
50 headings = ['Duplicate', 'Limbo', 'New', 'OnHold', 'Accepted', 'Fixed']
51 sorted_headings = grid_view_helpers.SortGridHeadings(
52 col_name, headings, self.users_by_id, config, asc_accessors)
53 self.assertEqual(
54 sorted_headings,
55 ['New', 'Accepted', 'Fixed', 'Duplicate', 'Limbo', 'OnHold'])
56
57 # Verify that special columns are sorted alphabetically.
58 col_name = 'id'
59 headings = [1, 2, 5, 3, 4]
60 sorted_headings = grid_view_helpers.SortGridHeadings(
61 col_name, headings, self.users_by_id, config, asc_accessors)
62 self.assertEqual(sorted_headings,
63 [1, 2, 3, 4, 5])
64
65 # Verify that label value headings are sorted according the the labels
66 # values defined in the config.
67 col_name = 'priority'
68 headings = ['Medium', 'High', 'Low', 'dont-care']
69 sorted_headings = grid_view_helpers.SortGridHeadings(
70 col_name, headings, self.users_by_id, config, asc_accessors)
71 self.assertEqual(sorted_headings,
72 ['High', 'Medium', 'Low', 'dont-care'])
73
74 def testGetArtifactAttr_Explicit(self):
75 label_values = grid_view_helpers.MakeLabelValuesDict(self.art2)
76
77 id_vals = grid_view_helpers.GetArtifactAttr(
78 self.art2, 'id', self.users_by_id, label_values, self.config)
79 self.assertEqual([1], id_vals)
80 summary_vals = grid_view_helpers.GetArtifactAttr(
81 self.art2, 'summary', self.users_by_id, label_values, self.config)
82 self.assertEqual(['a summary'], summary_vals)
83 status_vals = grid_view_helpers.GetArtifactAttr(
84 self.art2, 'status', self.users_by_id, label_values, self.config)
85 self.assertEqual(['New'], status_vals)
86 stars_vals = grid_view_helpers.GetArtifactAttr(
87 self.art2, 'stars', self.users_by_id, label_values, self.config)
88 self.assertEqual([12], stars_vals)
89 owner_vals = grid_view_helpers.GetArtifactAttr(
90 self.art2, 'owner', self.users_by_id, label_values, self.config)
91 self.assertEqual(['f...@example.com'], owner_vals)
92 priority_vals = grid_view_helpers.GetArtifactAttr(
93 self.art2, 'priority', self.users_by_id, label_values, self.config)
94 self.assertEqual(['Medium'], priority_vals)
95 mstone_vals = grid_view_helpers.GetArtifactAttr(
96 self.art2, 'mstone', self.users_by_id, label_values, self.config)
97 self.assertEqual(['1', '2'], mstone_vals)
98 foo_vals = grid_view_helpers.GetArtifactAttr(
99 self.art2, 'foo', self.users_by_id, label_values, self.config)
100 self.assertEqual([framework_constants.NO_VALUES], foo_vals)
101 # merged_into_vals = grid_view_helpers.GetArtifactAttr(
102 # self.art2, 'mergedinto', self.users_by_id, label_values,
103 # self.config)
104 # self.assertEqual(['other-project:1'], merged_into_vals)
105
106 def testGetArtifactAttr_Dervied(self):
107 label_values = grid_view_helpers.MakeLabelValuesDict(self.art1)
108 status_vals = grid_view_helpers.GetArtifactAttr(
109 self.art1, 'status', self.users_by_id, label_values, self.config)
110 self.assertEqual(['Overdue'], status_vals)
111 owner_vals = grid_view_helpers.GetArtifactAttr(
112 self.art1, 'owner', self.users_by_id, label_values, self.config)
113 self.assertEqual(['f...@example.com'], owner_vals)
114 priority_vals = grid_view_helpers.GetArtifactAttr(
115 self.art1, 'priority', self.users_by_id, label_values, self.config)
116 self.assertEqual(['Medium'], priority_vals)
117 mstone_vals = grid_view_helpers.GetArtifactAttr(
118 self.art1, 'mstone', self.users_by_id, label_values, self.config)
119 self.assertEqual(['1', '2'], mstone_vals)
120
121 def testMakeLabelValuesDict_Empty(self):
122 art = fake.MakeTestIssue(
123 789, 1, 'a summary', '', 0, derived_owner_id=111L, star_count=12)
124 label_values = grid_view_helpers.MakeLabelValuesDict(art)
125 self.assertEqual({}, label_values)
126
127 def testMakeLabelValuesDict(self):
128 art = fake.MakeTestIssue(
129 789, 1, 'a summary', '', 0, derived_owner_id=111L, star_count=12,
130 labels=['Priority-Medium', 'Hot', 'Mstone-1', 'Mstone-2'])
131 label_values = grid_view_helpers.MakeLabelValuesDict(art)
132 self.assertEqual(
133 {'priority': ['Medium'], 'mstone': ['1', '2']},
134 label_values)
135
136 art = fake.MakeTestIssue(
137 789, 1, 'a summary', '', 0, derived_owner_id=111L, star_count=12,
138 labels='Priority-Medium Hot Mstone-1'.split(),
139 derived_labels=['Mstone-2'])
140 label_values = grid_view_helpers.MakeLabelValuesDict(art)
141 self.assertEqual(
142 {'priority': ['Medium'], 'mstone': ['1', '2']},
143 label_values)
144
145 def testMakeDrillDownSearch(self):
146 self.assertEqual('-has:milestone ',
147 grid_view_helpers.MakeDrillDownSearch('milestone', '----'))
148 self.assertEqual('milestone=22 ',
149 grid_view_helpers.MakeDrillDownSearch('milestone', '22'))
150 self.assertEqual(
151 'owner=a@example.com ',
152 grid_view_helpers.MakeDrillDownSearch('owner', 'a@example.com'))
153
154 def testAnyArtifactHasNoAttr_Empty(self):
155 artifacts = []
156 all_label_values = {}
157 self.assertFalse(grid_view_helpers.AnyArtifactHasNoAttr(
158 artifacts, 'milestone', self.users_by_id, all_label_values,
159 self.config))
160
161 def testAnyArtifactHasNoAttr(self):
162 artifacts = [self.art1]
163 all_label_values = {
164 self.art1.local_id: grid_view_helpers.MakeLabelValuesDict(self.art1),
165 }
166 self.assertFalse(grid_view_helpers.AnyArtifactHasNoAttr(
167 artifacts, 'mstone', self.users_by_id, all_label_values, self.config))
168 self.assertTrue(grid_view_helpers.AnyArtifactHasNoAttr(
169 artifacts, 'milestone', self.users_by_id, all_label_values,
170 self.config))
171
172
173 if __name__ == '__main__':
174 unittest.main()
OLDNEW
« no previous file with comments | « appengine/monorail/framework/test/gcs_helpers_test.py ('k') | appengine/monorail/framework/test/jsonfeed_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698