You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

164 lines
6.6 KiB

# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# This module copyright (C) 2013 Savoir-faire Linux
# (<http://www.savoirfairelinux.com>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp.tests.common import TransactionCase
from openerp.models import BaseModel
from datetime import date
class Base_Test_passport(TransactionCase):
"""
Simple test creating a passport
This is a base class for passport test cases.
Inherit from this and setup values.
"""
def setUp(self, vals={}):
"""
Setting up passport.
"""
# Default test values
self.vals = {'name': 'This is a test passport name',
'number': 'A200124789',
'country_id': 1,
'expiration_date': date(2013, 11, 14),
'birth_date': date(1980, 11, 21),
'gender': 'male',
}
super(Base_Test_passport, self).setUp()
# Overwrite vals if needed
self.vals = dict(self.vals.items() + vals.items())
# Create the passport object; we will be testing this, so store in self
res_passport = self.registry('res.passport')
self.passport_id = res_passport.create(self.cr, self.uid, self.vals, context=None)
def test_passport(self):
"""
Checking the passport creation.
"""
res_passport = self.registry('res.passport')
passport_obj = res_passport.browse(self.cr, self.uid, self.passport_id, context=None)
for field in self.vals:
val = passport_obj[field]
if isinstance(val, BaseModel):
self.assertEquals(self.vals[field], val.id,
"IDs for %s don't match: (%i != %i)" %
(field, self.vals[field], val.id))
else:
self.assertEquals(str(self.vals[field]), str(val),
"Values for %s don't match: (%s != %s)" %
(field, str(self.vals[field]), str(val)))
class Test_passport_bad(Base_Test_passport):
"""
Simple test creating a passport, test against bad values
"""
def setUp(self):
"""
Setting up passport, then changing the values to test against.
"""
super(Test_passport_bad, self).setUp()
# Change vals to something wrong
self.vals = {
'name': 'This is the wrong passport name',
'number': 'A111111111',
'country_id': 0,
'expiration_date': date(1999, 11, 14),
'birth_date': date(1999, 11, 21),
'gender': '',
}
def test_passport(self):
"""
Checking the passport creation, assertions should all be false.
"""
res_passport = self.registry('res.passport')
passport_obj = res_passport.browse(self.cr, self.uid, self.passport_id, context=None)
for field in self.vals:
val = passport_obj[field]
if isinstance(val, BaseModel):
self.assertNotEqual(self.vals[field], val.id,
"IDs for %s don't match: (%i != %i)" %
(field, self.vals[field], val.id))
else:
self.assertNotEqual(str(self.vals[field]), str(val),
"Values for %s don't match: (%s != %s)" %
(field, str(self.vals[field]), str(val)))
class Test_passport_name_get(TransactionCase):
"""
Test name_get
"""
def setUp(self):
"""
Setting up passport with name, country, either and none.
"""
super(Test_passport_name_get, self).setUp()
res_passport = self.registry('res.passport')
res_country = self.registry('res.country')
country = res_country.browse(self.cr, self.uid, 1, context=None)
self.name_on_passport = 'test name'
self.country_name = country.name_get()[0][1]
self.both = res_passport.create(
self.cr, self.uid, {'name': self.name_on_passport,
'country_id': country.id, },
context=None)
self.name_only = res_passport.create(
self.cr, self.uid, {'name': self.name_on_passport, },
context=None)
self.country_only = res_passport.create(
self.cr, self.uid, {'country_id': country.id, },
context=None)
self.neither = res_passport.create(
self.cr, self.uid, {},
context=None)
def test_passport(self):
"""
Checking the passport creation, assertions should all be false.
"""
res_passport = self.registry('res.passport')
both_obj = res_passport.browse(self.cr, self.uid, self.both, context=None)
name_only = res_passport.browse(self.cr, self.uid, self.name_only, context=None)
country_only = res_passport.browse(self.cr, self.uid, self.country_only, context=None)
neither = res_passport.browse(self.cr, self.uid, self.neither, context=None)
self.assertEquals(
both_obj.name_get()[0][1],
' | '.join((self.country_name, self.name_on_passport)),
'Error in passport name_get() with both country name and name on '
'passport.'
)
self.assertEquals(
name_only.name_get()[0][1], self.name_on_passport,
'Error in passport name_get() with only name on passport.'
)
self.assertEquals(
country_only.name_get()[0][1], self.country_name,
'Error in passport name_get() with only name of country.'
)
self.assertEquals(
neither.name_get()[0][1], '',
'Error in passport name_get() with neither country name nor name '
'on passport.'
)