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

Side by Side Diff: appengine/monorail/framework/test/framework_bizobj_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 """Tests for monorail.framework.framework_bizobj."""
7
8 import unittest
9
10 from framework import framework_bizobj
11 from framework import framework_constants
12 from proto import project_pb2
13
14
15 class ArtifactTest(unittest.TestCase):
16
17 def testMergeLabels(self):
18 (merged_labels, update_add, update_remove) = framework_bizobj.MergeLabels(
19 [], [], [], [])
20 self.assertEquals(merged_labels, [])
21 self.assertEquals(update_add, [])
22 self.assertEquals(update_remove, [])
23
24 (merged_labels, update_add, update_remove) = framework_bizobj.MergeLabels(
25 ['a', 'b'], [], [], [])
26 self.assertEquals(merged_labels, ['a', 'b'])
27 self.assertEquals(update_add, [])
28 self.assertEquals(update_remove, [])
29
30 (merged_labels, update_add, update_remove) = framework_bizobj.MergeLabels(
31 ['a', 'b', 'd'], ['c'], ['d'], [])
32 self.assertEquals(merged_labels, ['a', 'b', 'c'])
33 self.assertEquals(update_add, ['c'])
34 self.assertEquals(update_remove, ['d'])
35
36 (merged_labels, update_add, update_remove) = framework_bizobj.MergeLabels(
37 ['a', 'b', 'd'], ['d'], ['e'], [])
38 self.assertEquals(merged_labels, ['a', 'b', 'd'])
39 self.assertEquals(update_add, []) # d was already there.
40 self.assertEquals(update_remove, []) # there was no e.
41
42 (merged_labels, update_add, update_remove) = framework_bizobj.MergeLabels(
43 ['Priority-Medium', 'OpSys-OSX'], ['Hot'], ['OpSys-OSX'], ['Priority'])
44 self.assertEquals(merged_labels, ['Priority-Medium', 'Hot'])
45 self.assertEquals(update_add, ['Hot'])
46 self.assertEquals(update_remove, ['OpSys-OSX'])
47
48 (merged_labels, update_add, update_remove) = framework_bizobj.MergeLabels(
49 ['Priority-Medium', 'OpSys-OSX'], ['Priority-High', 'OpSys-Win'], [],
50 ['Priority'])
51 self.assertEquals(merged_labels,
52 ['OpSys-OSX', 'Priority-High', 'OpSys-Win'])
53 self.assertEquals(update_add, ['Priority-High', 'OpSys-Win'])
54 self.assertEquals(update_remove, [])
55
56 (merged_labels, update_add, update_remove) = framework_bizobj.MergeLabels(
57 ['Priority-Medium', 'OpSys-OSX'], [], ['Priority-Medium', 'OpSys-Win'],
58 ['Priority'])
59 self.assertEquals(merged_labels, ['OpSys-OSX'])
60 self.assertEquals(update_add, [])
61 self.assertEquals(update_remove, ['Priority-Medium'])
62
63
64 class CanonicalizeLabelTest(unittest.TestCase):
65
66 def testCanonicalizeLabel(self):
67 self.assertEqual(None, framework_bizobj.CanonicalizeLabel(None))
68 self.assertEqual('FooBar', framework_bizobj.CanonicalizeLabel('Foo Bar '))
69 self.assertEqual('Foo.Bar',
70 framework_bizobj.CanonicalizeLabel('Foo . Bar '))
71 self.assertEqual('Foo-Bar',
72 framework_bizobj.CanonicalizeLabel('Foo - Bar '))
73
74
75 class IsValidProjectNameTest(unittest.TestCase):
76
77 def testBadChars(self):
78 self.assertFalse(framework_bizobj.IsValidProjectName('spa ce'))
79 self.assertFalse(framework_bizobj.IsValidProjectName('under_score'))
80 self.assertFalse(framework_bizobj.IsValidProjectName('name.dot'))
81 self.assertFalse(framework_bizobj.IsValidProjectName('pie#sign$'))
82 self.assertFalse(framework_bizobj.IsValidProjectName('(who?)'))
83
84 def testBadHyphen(self):
85 self.assertFalse(framework_bizobj.IsValidProjectName('name-'))
86 self.assertFalse(framework_bizobj.IsValidProjectName('-name'))
87 self.assertTrue(framework_bizobj.IsValidProjectName('project-name'))
88
89 def testMinimumLength(self):
90 self.assertFalse(framework_bizobj.IsValidProjectName('x'))
91 self.assertTrue(framework_bizobj.IsValidProjectName('xy'))
92
93 def testMaximumLength(self):
94 self.assertFalse(framework_bizobj.IsValidProjectName(
95 'x' * (framework_constants.MAX_PROJECT_NAME_LENGTH + 1)))
96 self.assertTrue(framework_bizobj.IsValidProjectName(
97 'x' * (framework_constants.MAX_PROJECT_NAME_LENGTH)))
98
99 def testInvalidName(self):
100 self.assertFalse(framework_bizobj.IsValidProjectName(''))
101 self.assertFalse(framework_bizobj.IsValidProjectName('000'))
102
103 def testValidName(self):
104 self.assertTrue(framework_bizobj.IsValidProjectName('098asd'))
105 self.assertTrue(framework_bizobj.IsValidProjectName('one-two-three'))
106
107
108 class UserIsInProjectTest(unittest.TestCase):
109
110 def testUserIsInProject(self):
111 p = project_pb2.Project()
112 self.assertFalse(framework_bizobj.UserIsInProject(p, {10}))
113 self.assertFalse(framework_bizobj.UserIsInProject(p, set()))
114
115 p.owner_ids.extend([1, 2, 3])
116 p.committer_ids.extend([4, 5, 6])
117 p.contributor_ids.extend([7, 8, 9])
118 self.assertTrue(framework_bizobj.UserIsInProject(p, {1}))
119 self.assertTrue(framework_bizobj.UserIsInProject(p, {4}))
120 self.assertTrue(framework_bizobj.UserIsInProject(p, {7}))
121 self.assertFalse(framework_bizobj.UserIsInProject(p, {10}))
122
123 # Membership via group membership
124 self.assertTrue(framework_bizobj.UserIsInProject(p, {10, 4}))
125
126 # Membership via several group memberships
127 self.assertTrue(framework_bizobj.UserIsInProject(p, {1, 4}))
128
129 # Several irrelevant group memberships
130 self.assertFalse(framework_bizobj.UserIsInProject(p, {10, 11, 12}))
131
132
133 class AllProjectMembersTest(unittest.TestCase):
134
135 def testAllProjectMembers(self):
136 p = project_pb2.Project()
137 self.assertEqual(framework_bizobj.AllProjectMembers(p), [])
138
139 p.owner_ids.extend([1, 2, 3])
140 p.committer_ids.extend([4, 5, 6])
141 p.contributor_ids.extend([7, 8, 9])
142 self.assertEqual(framework_bizobj.AllProjectMembers(p),
143 [1, 2, 3, 4, 5, 6, 7, 8, 9])
144
145
146 if __name__ == '__main__':
147 unittest.main()
OLDNEW
« no previous file with comments | « appengine/monorail/framework/test/filecontent_test.py ('k') | appengine/monorail/framework/test/framework_helpers_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698