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

68 lines
2.3 KiB
Python

8 months ago
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import odoo.exceptions
from odoo import models, api
from odoo.tools.safe_eval import safe_eval
class m(models.Model):
""" This model exposes a few methods that will raise the different
exceptions that must be handled by the server (and its RPC layer)
and the clients.
"""
_name = 'test.exceptions.model'
_description = 'Test Exception Model'
def generate_redirect_warning(self):
action = self.env.ref('test_exceptions.action_test_exceptions')
raise odoo.exceptions.RedirectWarning('description', action.id, 'Go to the redirection')
def generate_access_denied(self):
raise odoo.exceptions.AccessDenied()
def generate_access_error(self):
raise odoo.exceptions.AccessError('description')
def generate_exc_access_denied(self):
raise Exception('AccessDenied')
def generate_undefined(self):
self.surely_undefined_symbol
def generate_user_error(self):
raise odoo.exceptions.UserError('description')
def generate_missing_error(self):
raise odoo.exceptions.MissingError('description')
def generate_validation_error(self):
raise odoo.exceptions.ValidationError('description')
def generate_redirect_warning_safe_eval(self):
self.generate_safe_eval(self.generate_redirect_warning)
def generate_access_denied_safe_eval(self):
self.generate_safe_eval(self.generate_access_denied)
def generate_access_error_safe_eval(self):
self.generate_safe_eval(self.generate_access_error)
def generate_exc_access_denied_safe_eval(self):
self.generate_safe_eval(self.generate_exc_access_denied)
def generate_undefined_safe_eval(self):
self.generate_safe_eval(self.generate_undefined)
def generate_user_error_safe_eval(self):
self.generate_safe_eval(self.generate_user_error)
def generate_missing_error_safe_eval(self):
self.generate_safe_eval(self.generate_missing_error)
def generate_validation_error_safe_eval(self):
self.generate_safe_eval(self.generate_validation_error)
def generate_safe_eval(self, f):
globals_dict = { 'generate': f }
safe_eval("generate()", mode='exec', globals_dict=globals_dict)