diff --git a/openerp/modules/loading.py b/openerp/modules/loading.py index c3d73859730..bcda1690c91 100644 --- a/openerp/modules/loading.py +++ b/openerp/modules/loading.py @@ -348,7 +348,8 @@ def load_modules(db, force_demo=False, status=None, update_module=False): for (model, name) in cr.fetchall(): model_obj = pool.get(model) if model_obj and not model_obj.is_transient(): - _logger.warning('Model %s (%s) has no access rules!', model, name) + _logger.warning('The model %s has no access rules, consider adding one. E.g. access_%s,access_%s,model_%s,,1,1,1,1', + model, model.replace('.', '_'), model.replace('.', '_'), model.replace('.', '_')) # Temporary warning while we remove access rights on osv_memory objects, as they have # been replaced by owner-only access rights diff --git a/openerp/tests/addons/test_exceptions/__openerp__.py b/openerp/tests/addons/test_exceptions/__openerp__.py index 183f8877577..fc104f13a12 100644 --- a/openerp/tests/addons/test_exceptions/__openerp__.py +++ b/openerp/tests/addons/test_exceptions/__openerp__.py @@ -8,7 +8,7 @@ 'maintainer': 'OpenERP SA', 'website': 'http://www.openerp.com', 'depends': ['base'], - 'data': ['view.xml'], + 'data': ['view.xml', 'ir.model.access.csv'], 'installable': True, 'auto_install': False, } diff --git a/openerp/tests/addons/test_exceptions/ir.model.access.csv b/openerp/tests/addons/test_exceptions/ir.model.access.csv new file mode 100644 index 00000000000..56f99efd729 --- /dev/null +++ b/openerp/tests/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/openerp/tests/addons/test_impex/__openerp__.py b/openerp/tests/addons/test_impex/__openerp__.py index f3b5511dc30..2b52b6ad5fa 100644 --- a/openerp/tests/addons/test_impex/__openerp__.py +++ b/openerp/tests/addons/test_impex/__openerp__.py @@ -8,7 +8,7 @@ 'maintainer': 'OpenERP SA', 'website': 'http://www.openerp.com', 'depends': ['base'], - 'data': [], + 'data': ['ir.model.access.csv'], 'installable': True, 'auto_install': False, } diff --git a/openerp/tests/addons/test_impex/ir.model.access.csv b/openerp/tests/addons/test_impex/ir.model.access.csv new file mode 100644 index 00000000000..9a674d9ee1f --- /dev/null +++ b/openerp/tests/addons/test_impex/ir.model.access.csv @@ -0,0 +1,25 @@ +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +access_export_boolean,access_export_boolean,model_export_boolean,,1,1,1,1 +access_export_integer,access_export_integer,model_export_integer,,1,1,1,1 +access_export_float,access_export_float,model_export_float,,1,1,1,1 +access_export_decimal,access_export_decimal,model_export_decimal,,1,1,1,1 +access_export_string_bounded,access_export_string_bounded,model_export_string_bounded,,1,1,1,1 +access_export_string_required,access_export_string_required,model_export_string_required,,1,1,1,1 +access_export_string,access_export_string,model_export_string,,1,1,1,1 +access_export_date,access_export_date,model_export_date,,1,1,1,1 +access_export_datetime,access_export_datetime,model_export_datetime,,1,1,1,1 +access_export_text,access_export_text,model_export_text,,1,1,1,1 +access_export_selection,access_export_selection,model_export_selection,,1,1,1,1 +access_export_selection_function,access_export_selection_function,model_export_selection_function,,1,1,1,1 +access_export_many2one,access_export_many2one,model_export_many2one,,1,1,1,1 +access_export_one2many,access_export_one2many,model_export_one2many,,1,1,1,1 +access_export_many2many,access_export_many2many,model_export_many2many,,1,1,1,1 +access_export_function,access_export_function,model_export_function,,1,1,1,1 +access_export_one2many_child,access_export_one2many_child,model_export_one2many_child,,1,1,1,1 +access_export_one2many_multiple,access_export_one2many_multiple,model_export_one2many_multiple,,1,1,1,1 +access_export_one2many_multiple_child,access_export_one2many_multiple_child,model_export_one2many_multiple_child,,1,1,1,1 +access_export_one2many_child_1,access_export_one2many_child_1,model_export_one2many_child_1,,1,1,1,1 +access_export_one2many_child_2,access_export_one2many_child_2,model_export_one2many_child_2,,1,1,1,1 +access_export_many2many_other,access_export_many2many_other,model_export_many2many_other,,1,1,1,1 +access_export_selection_withdefault,access_export_selection_withdefault,model_export_selection_withdefault,,1,1,1,1 +access_export_one2many_recursive,access_export_one2many_recursive,model_export_one2many_recursive,,1,1,1,1 diff --git a/openerp/tests/addons/test_limits/__openerp__.py b/openerp/tests/addons/test_limits/__openerp__.py index 05b70919a2a..59972e60e36 100644 --- a/openerp/tests/addons/test_limits/__openerp__.py +++ b/openerp/tests/addons/test_limits/__openerp__.py @@ -8,7 +8,7 @@ 'maintainer': 'OpenERP SA', 'website': 'http://www.openerp.com', 'depends': ['base'], - 'data': [], + 'data': ['ir.model.access.csv'], 'installable': True, 'auto_install': False, } diff --git a/openerp/tests/addons/test_limits/ir.model.access.csv b/openerp/tests/addons/test_limits/ir.model.access.csv new file mode 100644 index 00000000000..02f18639a73 --- /dev/null +++ b/openerp/tests/addons/test_limits/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_limits_model,access_test_limits_model,model_test_limits_model,,1,1,1,1 diff --git a/openerp/tests/addons/test_uninstall/__openerp__.py b/openerp/tests/addons/test_uninstall/__openerp__.py index d8776897df0..0015d5a52d4 100644 --- a/openerp/tests/addons/test_uninstall/__openerp__.py +++ b/openerp/tests/addons/test_uninstall/__openerp__.py @@ -8,7 +8,7 @@ 'maintainer': 'OpenERP SA', 'website': 'http://www.openerp.com', 'depends': ['base'], - 'data': [], + 'data': ['ir.model.access.csv'], 'installable': True, 'auto_install': False, } diff --git a/openerp/tests/addons/test_uninstall/ir.model.access.csv b/openerp/tests/addons/test_uninstall/ir.model.access.csv new file mode 100644 index 00000000000..f5b5b1f8f4d --- /dev/null +++ b/openerp/tests/addons/test_uninstall/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_uninstall_model,access_test_uninstall_model,model_test_uninstall_model,,1,1,1,1 diff --git a/openerp/tests/test_db_cursor.py b/openerp/tests/test_db_cursor.py index e9737547619..dba1cf47b64 100644 --- a/openerp/tests/test_db_cursor.py +++ b/openerp/tests/test_db_cursor.py @@ -9,8 +9,8 @@ import common DB = common.DB ADMIN_USER_ID = common.ADMIN_USER_ID -def cursor(): - return openerp.modules.registry.RegistryManager.get(DB).db.cursor() +def registry(): + return openerp.modules.registry.RegistryManager.get(DB) class test_cr_execute(unittest2.TestCase): @@ -21,12 +21,12 @@ class test_cr_execute(unittest2.TestCase): """ Try to use iterable but non-list or int params in query parameters. """ - cr = cursor() - with self.assertRaises(ValueError): - cr.execute("SELECT id FROM res_users WHERE login=%s", 'admin') - with self.assertRaises(ValueError): - cr.execute("SELECT id FROM res_users WHERE id=%s", 1) - with self.assertRaises(ValueError): - cr.execute("SELECT id FROM res_users WHERE id=%s", '1') + with registry().cursor(auto_commit=False) as cr: + with self.assertRaises(ValueError): + cr.execute("SELECT id FROM res_users WHERE login=%s", 'admin') + with self.assertRaises(ValueError): + cr.execute("SELECT id FROM res_users WHERE id=%s", 1) + with self.assertRaises(ValueError): + cr.execute("SELECT id FROM res_users WHERE id=%s", '1') # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/openerp/tests/test_orm.py b/openerp/tests/test_orm.py index c114064cd5f..1dde83d026c 100644 --- a/openerp/tests/test_orm.py +++ b/openerp/tests/test_orm.py @@ -109,6 +109,7 @@ class TestInherits(common.TransactionCase): self.assertEqual(foo.name, 'Foo') self.assertEqual(foo.partner_id.id, par_id) + @mute_logger('openerp.osv.orm') def test_read(self): """ inherited fields should be read without any indirection """ foo_id = self.user.create(self.cr, UID, {'name': 'Foo', 'login': 'foo', 'password': 'foo'}) @@ -120,6 +121,7 @@ class TestInherits(common.TransactionCase): foo = self.user.browse(self.cr, UID, foo_id) self.assertEqual(foo.name, foo.partner_id.name) + @mute_logger('openerp.osv.orm') def test_copy(self): """ copying a user should automatically copy its partner, too """ foo_id = self.user.create(self.cr, UID, {'name': 'Foo', 'login': 'foo', 'password': 'foo'}) @@ -134,6 +136,7 @@ class TestInherits(common.TransactionCase): self.assertNotEqual(foo.id, bar.id) self.assertNotEqual(foo.partner_id.id, bar.partner_id.id) + @mute_logger('openerp.osv.orm') def test_copy_with_ancestor(self): """ copying a user with 'parent_id' in defaults should not duplicate the partner """ foo_id = self.user.create(self.cr, UID, {'name': 'Foo', 'login': 'foo', 'password': 'foo'})