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.
64 lines
2.5 KiB
64 lines
2.5 KiB
# Copyright 2016 Yannick Vaucher (Camptocamp SA)
|
|
# Copyright 2020 Therp BV - https://therp.nl.
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
from odoo.tests.common import Form, TransactionCase
|
|
|
|
|
|
class UserOnchangeCase(TransactionCase):
|
|
def test_create_from_form_only_firstname(self):
|
|
"""In a new users form, a user set only the firstname."""
|
|
login = "Zoë"
|
|
firstname = "Zoë"
|
|
with self.get_clean_user_form() as user_form:
|
|
user_form.login = login
|
|
# Changes firstname, which triggers onchanges
|
|
user_form.firstname = firstname
|
|
|
|
self.assertEqual(user_form.lastname, False)
|
|
self.assertEqual(user_form.firstname, firstname)
|
|
self.assertEqual(user_form.name, firstname)
|
|
|
|
def test_create_from_form_only_lastname(self):
|
|
"""In a new user form, a user set only the lastname."""
|
|
login = "Żywioł"
|
|
lastname = "Żywioł"
|
|
with self.get_clean_user_form() as user_form:
|
|
user_form.login = login
|
|
# Changes lastname, which triggers onchanges
|
|
user_form.lastname = lastname
|
|
|
|
self.assertEqual(user_form.firstname, False)
|
|
self.assertEqual(user_form.lastname, lastname)
|
|
self.assertEqual(user_form.name, lastname)
|
|
|
|
def test_create_from_form_all(self):
|
|
"""In a new user form, a user set all names."""
|
|
login = "Zoë.Żywioł"
|
|
firstname = "Zoë"
|
|
lastname = "Żywioł"
|
|
with self.get_clean_user_form() as user_form:
|
|
user_form.login = login
|
|
# Changes firstname, which triggers onchanges
|
|
user_form.firstname = firstname
|
|
# Changes lastname, which triggers onchanges
|
|
user_form.lastname = lastname
|
|
|
|
self.assertEqual(user_form.lastname, lastname)
|
|
self.assertEqual(user_form.firstname, firstname)
|
|
self.assertEqual(user_form.name, " ".join((firstname, lastname)))
|
|
|
|
def get_clean_user_form(self):
|
|
"""Get form without pseudo_fields.
|
|
|
|
This will be needed until Odoo Form does weed out these fields by itself.
|
|
"""
|
|
form = Form(self.env["res.users"], view="partner_firstname.view_users_form")
|
|
pseudo_fields = [
|
|
fieldname
|
|
for fieldname in form._view["fields"].keys()
|
|
if fieldname[:11] == "sel_groups_" or fieldname[:9] == "in_group_"
|
|
]
|
|
for fieldname in pseudo_fields:
|
|
del form._view["fields"][fieldname]
|
|
del form._values[fieldname]
|
|
return form
|