summaryrefslogtreecommitdiff
path: root/odoo/addons/test_exceptions
diff options
context:
space:
mode:
authorRaphael Collet <rco@openerp.com>2016-09-02 15:58:39 +0200
committerRaphael Collet <rco@openerp.com>2016-09-02 17:28:12 +0200
commit9e64f9f9514194d74e166b032add8511182f2677 (patch)
tree5086710c04c6b923be18a6d1d97b3f0f3a2a9c4a /odoo/addons/test_exceptions
parent11812b0b9e82b2b1b9041d8250ce01e7b4a5f7ee (diff)
[REF] openerp: move `openerp` to `odoo`
Diffstat (limited to 'odoo/addons/test_exceptions')
-rw-r--r--odoo/addons/test_exceptions/__init__.py4
-rw-r--r--odoo/addons/test_exceptions/__openerp__.py12
-rw-r--r--odoo/addons/test_exceptions/ir.model.access.csv2
-rw-r--r--odoo/addons/test_exceptions/models.py110
-rw-r--r--odoo/addons/test_exceptions/static/description/icon.pngbin0 -> 7636 bytes
-rw-r--r--odoo/addons/test_exceptions/view.xml126
6 files changed, 254 insertions, 0 deletions
diff --git a/odoo/addons/test_exceptions/__init__.py b/odoo/addons/test_exceptions/__init__.py
new file mode 100644
index 00000000000..dc5e6b693d1
--- /dev/null
+++ b/odoo/addons/test_exceptions/__init__.py
@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from . import models
diff --git a/odoo/addons/test_exceptions/__openerp__.py b/odoo/addons/test_exceptions/__openerp__.py
new file mode 100644
index 00000000000..257ed67b829
--- /dev/null
+++ b/odoo/addons/test_exceptions/__openerp__.py
@@ -0,0 +1,12 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+{
+ 'name': 'test-exceptions',
+ 'version': '0.1',
+ 'category': 'Tests',
+ 'description': """A module to generate exceptions.""",
+ 'depends': ['base'],
+ 'data': ['view.xml', 'ir.model.access.csv'],
+ 'installable': True,
+ 'auto_install': False,
+}
diff --git a/odoo/addons/test_exceptions/ir.model.access.csv b/odoo/addons/test_exceptions/ir.model.access.csv
new file mode 100644
index 00000000000..56f99efd729
--- /dev/null
+++ b/odoo/addons/test_exceptions/ir.model.access.csv
@@ -0,0 +1,2 @@
+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+access_test_exceptions_model,access_test_exceptions_model,model_test_exceptions_model,,1,1,1,1
diff --git a/odoo/addons/test_exceptions/models.py b/odoo/addons/test_exceptions/models.py
new file mode 100644
index 00000000000..9b5e6902681
--- /dev/null
+++ b/odoo/addons/test_exceptions/models.py
@@ -0,0 +1,110 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+import odoo.exceptions
+import odoo.osv.osv
+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'
+
+ @api.multi
+ def generate_except_osv(self):
+ # title is ignored in the new (6.1) exceptions
+ raise odoo.osv.osv.except_osv('title', 'description')
+
+ @api.multi
+ def generate_except_orm(self):
+ # title is ignored in the new (6.1) exceptions
+ raise odoo.exceptions.except_orm('title', 'description')
+
+ @api.multi
+ def generate_warning(self):
+ raise odoo.exceptions.Warning('description')
+
+ @api.multi
+ 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')
+
+ @api.multi
+ def generate_access_denied(self):
+ raise odoo.exceptions.AccessDenied()
+
+ @api.multi
+ def generate_access_error(self):
+ raise odoo.exceptions.AccessError('description')
+
+ @api.multi
+ def generate_exc_access_denied(self):
+ raise Exception('AccessDenied')
+
+ @api.multi
+ def generate_undefined(self):
+ self.surely_undefined_symbol
+
+ @api.multi
+ def generate_user_error(self):
+ raise odoo.exceptions.UserError('description')
+
+ @api.multi
+ def generate_missing_error(self):
+ raise odoo.exceptions.MissingError('description')
+
+ @api.multi
+ def generate_validation_error(self):
+ raise odoo.exceptions.ValidationError('description')
+
+ @api.multi
+ def generate_except_osv_safe_eval(self):
+ self.generate_safe_eval(self.generate_except_osv)
+
+ @api.multi
+ def generate_except_orm_safe_eval(self):
+ self.generate_safe_eval(self.generate_except_orm)
+
+ @api.multi
+ def generate_warning_safe_eval(self):
+ self.generate_safe_eval(self.generate_warning)
+
+ @api.multi
+ def generate_redirect_warning_safe_eval(self):
+ self.generate_safe_eval(self.generate_redirect_warning)
+
+ @api.multi
+ def generate_access_denied_safe_eval(self):
+ self.generate_safe_eval(self.generate_access_denied)
+
+ @api.multi
+ def generate_access_error_safe_eval(self):
+ self.generate_safe_eval(self.generate_access_error)
+
+ @api.multi
+ def generate_exc_access_denied_safe_eval(self):
+ self.generate_safe_eval(self.generate_exc_access_denied)
+
+ @api.multi
+ def generate_undefined_safe_eval(self):
+ self.generate_safe_eval(self.generate_undefined)
+
+ @api.multi
+ def generate_user_error_safe_eval(self):
+ self.generate_safe_eval(self.generate_user_error)
+
+ @api.multi
+ def generate_missing_error_safe_eval(self):
+ self.generate_safe_eval(self.generate_missing_error)
+
+ @api.multi
+ def generate_validation_error_safe_eval(self):
+ self.generate_safe_eval(self.generate_validation_error)
+
+ @api.multi
+ def generate_safe_eval(self, f):
+ globals_dict = { 'generate': f }
+ safe_eval("generate()", mode='exec', globals_dict=globals_dict)
diff --git a/odoo/addons/test_exceptions/static/description/icon.png b/odoo/addons/test_exceptions/static/description/icon.png
new file mode 100644
index 00000000000..b0f5613028c
--- /dev/null
+++ b/odoo/addons/test_exceptions/static/description/icon.png
Binary files differ
diff --git a/odoo/addons/test_exceptions/view.xml b/odoo/addons/test_exceptions/view.xml
new file mode 100644
index 00000000000..70827656903
--- /dev/null
+++ b/odoo/addons/test_exceptions/view.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data>
+
+ <record id="view_test_exceptions_model" model="ir.ui.view">
+ <field name="name">Test exceptions</field>
+ <field name="model">test.exceptions.model</field>
+ <field name="arch" type="xml">
+ <form string="Test exceptions" version="6.1">
+ <label string="Each button generates a specific exception on the server. The text on the right is the expected representation of the exception when displayed on the client. Button marked with a '*' use safe_eval()."/>
+ <separator string="" colspan="8"/>
+ <group colspan="8" col="8">
+ <group colspan="4" col="8">
+ <group colspan="8" col="8">
+ <button name="generate_except_osv" string="except_osv" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Warning-description"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_except_orm" string="except_orm" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Warning-description"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_warning" string="Warning" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Warning-description"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_redirect_warning" string="RedirectWarning" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Warning-description-redirection button"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_access_denied" string="AccessDenied" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Access denied-traceback"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_access_error" string="AccessError" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Access rights error-description"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_exc_access_denied" string="Exc AccessDenied" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Access denied-traceback"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_undefined" string="Undefined" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Server error-traceback"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_user_error" string="UserError" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Warning-description"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_missing_error" string="MissingError" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Missing Error-description"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_validation_error" string="ValidationError" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Validation Error-description"/>
+ </group>
+ </group>
+ <group colspan="4" col="8">
+ <group colspan="8" col="8">
+ <button name="generate_except_osv_safe_eval" string="except_osv*" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Warning-description"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_except_orm_safe_eval" string="except_orm*" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Warning-description"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_warning_safe_eval" string="Warning*" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Warning-description"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_redirect_warning_safe_eval" string="RedirectWarning*" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Warning-description-redirection button"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_access_denied_safe_eval" string="AccessDenied*" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Access denied-traceback"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_access_error_safe_eval" string="AccessError*" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Access rights error-description"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_exc_access_denied_safe_eval" string="Exc AccessDenied*" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Access denied-traceback"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_undefined_safe_eval" string="Undefined*" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Server error-traceback"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_user_error_safe_eval" string="UserError*" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Warning-description"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_missing_error_safe_eval" string="MissingError*" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Missing Error-description"/>
+ </group>
+ <group colspan="8" col="8">
+ <button name="generate_validation_error_safe_eval" string="ValidationError*" type="object" icon="fa-refresh text-primary" colspan="1"/>
+ <label string="Validation Error-description"/>
+ </group>
+ </group>
+ </group>
+ </form>
+ </field>
+ </record>
+
+ <record id="action_test_exceptions" model="ir.actions.act_window">
+ <field name="name">Test exceptions</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">test.exceptions.model</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">form</field>
+ <field name="target">new</field>
+ </record>
+
+ <menuitem id="menu_test_exceptions" parent="base.menu_tests" name="Test exceptions"/>
+
+ <menuitem id="menu_test_exceptions_leaf"
+ name="Test exceptions"
+ action="action_test_exceptions"
+ parent="menu_test_exceptions"/>
+ </data>
+</odoo>