blob: 62880ea3519c4bc2a9243956a51c63f960f31ee7 [file] [log] [blame]
# Copyright 2011 the Melange authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Tests for soc.logic.helper.prefixes.
"""
import unittest
from google.appengine.api import users
from soc.logic.helper import prefixes
from soc.models.organization import Organization
from soc.models.program import Program
from soc.models.site import Site
from soc.models.user import User
from soc.modules.gci.models.organization import GCIOrganization
from soc.modules.gci.models.program import GCIProgram
from soc.modules.gsoc.models.organization import GSoCOrganization
from soc.modules.gsoc.models.program import GSoCProgram
from soc.modules.gsoc.models.timeline import GSoCTimeline
from soc.modules.seeder.logic.seeder import logic as seeder_logic
class TestPrefixes(unittest.TestCase):
"""Tests for prefix helper functions for models with document prefixes.
"""
def setUp(self):
self.user = seeder_logic.seed(User)
self.program_timeline = seeder_logic.seed(GSoCTimeline)
program_properties = {'timeline': self.program_timeline, 'scope': self.user}
self.program = seeder_logic.seed(Program, program_properties)
self.gsoc_program = seeder_logic.seed(GSoCProgram, program_properties)
self.gci_program = seeder_logic.seed(GCIProgram, program_properties)
self.site = seeder_logic.seed(Site,)
self.organization = seeder_logic.seed(Organization)
self.gsoc_organization = seeder_logic.seed(GSoCOrganization)
self.gci_organization = seeder_logic.seed(GCIOrganization)
self.user_key_name = self.user.key().name()
self.program_key_name = self.program.key().name()
self.gsoc_program_key_name = self.gsoc_program.key().name()
self.gci_program_key_name = self.gci_program.key().name()
self.site_key_name = self.site.key().name()
self.org_key_name = self.organization.key().name()
self.gsoc_org_key_name = self.gsoc_organization.key().name()
self.gci_org_key_name = self.gci_organization.key().name()
def testGetScopeForPrefix(self):
"""Tests if the scope for a given prefix and key_name is returned.
"""
prefix = 'user'
key_name = self.user_key_name
scope_returned = prefixes.getScopeForPrefix(prefix, key_name)
self.assertEqual(scope_returned.key().name(), key_name)
self.assertEqual(type(scope_returned), type(self.user))
prefix = 'site'
key_name = self.site_key_name
scope_returned = prefixes.getScopeForPrefix(prefix, key_name)
self.assertEqual(scope_returned.key().name(), key_name)
self.assertEqual(type(scope_returned), type(self.site))
prefix = 'org'
key_name = self.org_key_name
scope_returned = prefixes.getScopeForPrefix(prefix, key_name)
self.assertEqual(scope_returned.key().name(), key_name)
self.assertEqual(type(scope_returned), type(self.organization))
prefix = 'gsoc_org'
key_name = self.gsoc_org_key_name
scope_returned = prefixes.getScopeForPrefix(prefix, key_name)
self.assertEqual(scope_returned.key().name(), key_name)
self.assertEqual(type(scope_returned), type(self.gsoc_organization))
prefix = 'gci_org'
key_name = self.gci_org_key_name
scope_returned = prefixes.getScopeForPrefix(prefix, key_name)
self.assertEqual(scope_returned.key().name(), key_name)
self.assertEqual(type(scope_returned), type(self.gci_organization))
prefix = 'program'
key_name = self.program_key_name
scope_returned = prefixes.getScopeForPrefix(prefix, key_name)
self.assertEqual(scope_returned.key().name(), key_name)
self.assertEqual(type(scope_returned), type(self.program))
prefix = 'gsoc_program'
key_name = self.gsoc_program_key_name
scope_returned = prefixes.getScopeForPrefix(prefix, key_name)
self.assertEqual(scope_returned.key().name(), key_name)
self.assertEqual(type(scope_returned), type(self.gsoc_program))
prefix = 'gci_program'
key_name = self.gci_program_key_name
scope_returned = prefixes.getScopeForPrefix(prefix, key_name)
self.assertEqual(scope_returned.key().name(), key_name)
self.assertEqual(type(scope_returned), type(self.gci_program))
#When prefix is invalid.
prefix = 'invalid_prefix'
key_name = 'some_key_name'
self.assertRaises(
AttributeError, prefixes.getScopeForPrefix, prefix, key_name)