blob: 00a728bca06b12c07731c42221d5ad5f9ee1ac51 [file] [log] [blame]
# 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
"""Unit tests for helpers module."""
import unittest
from project import project_helpers
from proto import project_pb2
from services import service_manager
from testing import fake
class HelpersUnitTest(unittest.TestCase):
def setUp(self):
self.cnxn = 'fake sql connection'
self.services = service_manager.Services(
project=fake.ProjectService(),
user=fake.UserService())
self.services.user.TestAddUser('a@example.com', 111L)
self.services.user.TestAddUser('b@example.com', 222L)
self.services.user.TestAddUser('c@example.com', 333L)
def testBuildProjectMembers(self):
project = project_pb2.MakeProject(
'proj', owner_ids=[111L], committer_ids=[222L],
contributor_ids=[333L])
page_data = project_helpers.BuildProjectMembers(
self.cnxn, project, self.services.user)
self.assertEqual(111L, page_data['owners'][0].user_id)
self.assertEqual(222L, page_data['committers'][0].user_id)
self.assertEqual(333L, page_data['contributors'][0].user_id)
self.assertEqual(3, len(page_data['all_members']))
def testParseUsernames(self):
# Form field was not present in post data.
id_set = project_helpers.ParseUsernames(
self.cnxn, self.services.user, None)
self.assertEqual(set(), id_set)
# Form field was present, but empty.
id_set = project_helpers.ParseUsernames(
self.cnxn, self.services.user, '')
self.assertEqual(set(), id_set)
# Parsing valid user names.
id_set = project_helpers.ParseUsernames(
self.cnxn, self.services.user, 'a@example.com, c@example.com')
self.assertEqual({111L, 333L}, id_set)
def testParseProjectAccess_NotOffered(self):
project = project_pb2.MakeProject('proj')
access = project_helpers.ParseProjectAccess(project, None)
self.assertEqual(None, access)
def testParseProjectAccess_AllowedChoice(self):
project = project_pb2.MakeProject('proj')
access = project_helpers.ParseProjectAccess(project, '1')
self.assertEqual(project_pb2.ProjectAccess.ANYONE, access)
access = project_helpers.ParseProjectAccess(project, '3')
self.assertEqual(project_pb2.ProjectAccess.MEMBERS_ONLY, access)
def testParseProjectAccess_BogusChoice(self):
project = project_pb2.MakeProject('proj')
access = project_helpers.ParseProjectAccess(project, '9')
self.assertEqual(None, access)
if __name__ == '__main__':
unittest.main()