75 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
| # -*- coding: utf-8 -*-
 | |
| # © 2014 Nemry Jonathan (Acsone SA/NV) (http://www.acsone.eu)
 | |
| # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
 | |
| 
 | |
| from odoo.tests.common import TransactionCase
 | |
| from .. import exceptions as ex
 | |
| 
 | |
| 
 | |
| class MailInstalled():
 | |
|     def mail_installed(self):
 | |
|         """Check if ``mail`` module is installed.``"""
 | |
|         return (self.env["ir.module.module"]
 | |
|                 .search([("name", "=", "mail")])
 | |
|                 .state == "installed")
 | |
| 
 | |
| 
 | |
| class BaseCase(TransactionCase, MailInstalled):
 | |
|     def setUp(self):
 | |
|         super(BaseCase, self).setUp()
 | |
|         self.check_fields = True
 | |
|         self.expect("Núñez", "Fernán")
 | |
|         self.create_original()
 | |
| 
 | |
|     def create_original(self):
 | |
|         self.original = self.env["res.partner"].create({
 | |
|             "lastname": self.lastname,
 | |
|             "firstname": self.firstname})
 | |
| 
 | |
|     def expect(self, lastname, firstname, name=None):
 | |
|         """Define what is expected in each field when ending."""
 | |
|         self.lastname = lastname
 | |
|         self.firstname = firstname
 | |
|         self.name = name or "%s %s" % (lastname, firstname)
 | |
| 
 | |
|     def tearDown(self):
 | |
|         if self.check_fields:
 | |
|             if not hasattr(self, "changed"):
 | |
|                 self.changed = self.original
 | |
| 
 | |
|             for field in ("name", "lastname", "firstname"):
 | |
|                 self.assertEqual(
 | |
|                     getattr(self.changed, field),
 | |
|                     getattr(self, field),
 | |
|                     "Test failed with wrong %s" % field)
 | |
| 
 | |
|         super(BaseCase, self).tearDown()
 | |
| 
 | |
|     def test_copy(self):
 | |
|         """Copy the partner and compare the result."""
 | |
|         self.expect(self.lastname, "%s (copy)" % self.firstname)
 | |
|         self.changed = (self.original.with_context(copy=True, lang="en_US")
 | |
|                         .copy())
 | |
| 
 | |
|     def test_one_name(self):
 | |
|         """Test what happens when only one name is given."""
 | |
|         name = "Mönty"
 | |
|         self.expect(name, False, name)
 | |
|         self.original.name = name
 | |
| 
 | |
|     def test_no_names(self):
 | |
|         """Test that you cannot set a partner/user without names."""
 | |
|         self.check_fields = False
 | |
|         with self.assertRaises(ex.EmptyNamesError):
 | |
|             self.original.firstname = self.original.lastname = False
 | |
| 
 | |
| 
 | |
| class OnChangeCase(TransactionCase):
 | |
|     is_company = False
 | |
| 
 | |
|     def new_partner(self):
 | |
|         """Create an empty partner. Ensure it is (or not) a company."""
 | |
|         new = self.env["res.partner"].new()
 | |
|         new.is_company = self.is_company
 | |
|         return new
 |