|
|
# -*- coding: utf-8 -*- # © 2015 Grupo ESOC <www.grupoesoc.es> # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
"""These tests try to mimic the behavior of the UI form.
The form operates in onchange mode, with its limitations. """
from .base import OnChangeCase
class PartnerCompanyCase(OnChangeCase): is_company = True
def test_create_from_form(self): """A user creates a company from the form.""" name = "Sôme company" with self.env.do_in_onchange(): # User presses ``new`` partner = self.new_partner()
# User sets a name, which triggers onchanges partner.name = name partner._onchange_name()
self.assertEqual(partner.name, name) self.assertEqual(partner.firstname, False) self.assertEqual(partner.lastname, name)
def test_empty_name_and_subnames(self): """If the user empties ``name``, subnames must be ``False``.
Otherwise, the ``required`` attr will not work as expected. """
with self.env.do_in_onchange(): # User presses ``new`` partner = self.new_partner()
# User sets a name, which triggers onchanges partner.name = "Foó" partner._onchange_name()
# User unsets name, which triggers onchanges partner.name = "" partner._onchange_name()
self.assertEqual(partner.firstname, False) self.assertEqual(partner.lastname, False)
class PartnerContactCase(OnChangeCase): def test_create_from_form_only_firstname(self): """A user creates a contact with only the firstname from the form.""" firstname = "Fïrst" with self.env.do_in_onchange(): # User presses ``new`` partner = self.new_partner()
# Changes firstname, which triggers onchanges partner.firstname = firstname partner._onchange_subnames() partner._onchange_name()
self.assertEqual(partner.lastname, False) self.assertEqual(partner.firstname, firstname) self.assertEqual(partner.name, firstname)
def test_create_from_form_only_lastname(self): """A user creates a contact with only the lastname from the form.""" lastname = "Läst" with self.env.do_in_onchange(): # User presses ``new`` partner = self.new_partner()
# Changes lastname, which triggers onchanges partner.lastname = lastname partner._onchange_subnames() partner._onchange_name()
self.assertEqual(partner.firstname, False) self.assertEqual(partner.lastname, lastname) self.assertEqual(partner.name, lastname)
def test_create_from_form_all(self): """A user creates a contact with all names from the form.""" firstname = "Fïrst" lastname = "Läst" with self.env.do_in_onchange(): # User presses ``new`` partner = self.new_partner()
# Changes firstname, which triggers onchanges partner.firstname = firstname partner._onchange_subnames() partner._onchange_name()
# Changes lastname, which triggers onchanges partner.lastname = lastname partner._onchange_subnames() partner._onchange_name()
self.assertEqual(partner.lastname, lastname) self.assertEqual(partner.firstname, firstname) self.assertEqual(partner.name, " ".join((lastname, firstname)))
|