[Zope-Checkins] CVS: Zope3/lib/python/Zope/I18n/tests - testNegotiator.py:1.1.2.1

Andreas Jung andreas@digicool.com
Thu, 17 Jan 2002 17:40:50 -0500


Update of /cvs-repository/Zope3/lib/python/Zope/I18n/tests
In directory cvs.zope.org:/tmp/cvs-serv30450/tests

Added Files:
      Tag: Zope-3x-branch
	testNegotiator.py 
Log Message:
initial support for language negotiation


=== Added File Zope3/lib/python/Zope/I18n/tests/testNegotiator.py ===
##############################################################################
#
# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
# 
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
# 
##############################################################################

import unittest, sys

from Zope.I18n.Negotiator import Negotiator
from Zope.I18n.IUserPreferedLanguages import IUserPreferedLanguages

class Env:

    __implements__ = IUserPreferedLanguages

    def __init__(self, langs=()):
        self.langs = langs

    def getLanguages(self):
        return self.langs


class Test(unittest.TestCase):

    def setUp(self):

        self.Negotiator= Negotiator()

    def test1(self):

        _cases = (
            ( ('en','de'),    ('en','de','fr'),  'en'),
            ( ('en'),         ('it','de','fr'),  None)
        )

        for user_pref_langs, obj_langs, expected in _cases:
        
            env = Env(user_pref_langs)

            self.assertEqual( self.Negotiator.getLanguage( obj_langs, env), 
                                expected) 

        


def test_suite():
    loader=unittest.TestLoader()
    return loader.loadTestsFromTestCase(Test)

if __name__=='__main__':
    unittest.TextTestRunner().run(test_suite())