[IMP] Module 'auditlog' - Unsubscribe rules before removing them + Unit tests updated
parent
838dee0376
commit
51238c854b
|
@ -198,6 +198,12 @@ class auditlog_rule(models.Model):
|
||||||
modules.registry.RegistryManager.signal_registry_change(cr.dbname)
|
modules.registry.RegistryManager.signal_registry_change(cr.dbname)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@api.multi
|
||||||
|
def unlink(self):
|
||||||
|
"""Unsubscribe rules before removing them."""
|
||||||
|
self.unsubscribe()
|
||||||
|
return super(auditlog_rule, self).unlink()
|
||||||
|
|
||||||
def _make_create(self):
|
def _make_create(self):
|
||||||
"""Instanciate a create method that log its calls."""
|
"""Instanciate a create method that log its calls."""
|
||||||
@api.model
|
@api.model
|
||||||
|
|
|
@ -22,45 +22,58 @@ from openerp.tests.common import TransactionCase
|
||||||
|
|
||||||
|
|
||||||
class TestAuditlog(TransactionCase):
|
class TestAuditlog(TransactionCase):
|
||||||
def test_LogCreation(self):
|
def setUp(self):
|
||||||
"""First test, caching some data."""
|
super(TestAuditlog, self).setUp()
|
||||||
auditlog_log = self.env['auditlog.log']
|
self.groups_model_id = self.env.ref('base.model_res_groups').id
|
||||||
groups_model_id = self.env.ref('base.model_res_groups').id
|
self.groups_rule = self.env['auditlog.rule'].create({
|
||||||
self.env['auditlog.rule'].create({
|
|
||||||
'name': 'testrule for groups',
|
'name': 'testrule for groups',
|
||||||
'model_id': groups_model_id,
|
'model_id': self.groups_model_id,
|
||||||
'log_read': True,
|
'log_read': True,
|
||||||
'log_create': True,
|
'log_create': True,
|
||||||
'log_write': True,
|
'log_write': True,
|
||||||
'log_unlink': True,
|
'log_unlink': True,
|
||||||
'state': 'subscribed',
|
'state': 'subscribed',
|
||||||
})
|
})
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
self.groups_rule.unlink()
|
||||||
|
super(TestAuditlog, self).tearDown()
|
||||||
|
|
||||||
|
def test_LogCreation(self):
|
||||||
|
"""First test, caching some data."""
|
||||||
|
auditlog_log = self.env['auditlog.log']
|
||||||
group = self.env['res.groups'].create({
|
group = self.env['res.groups'].create({
|
||||||
'name': 'testgroup1',
|
'name': 'testgroup1',
|
||||||
})
|
})
|
||||||
self.assertTrue(auditlog_log.search([
|
self.assertTrue(auditlog_log.search([
|
||||||
('model_id', '=', groups_model_id),
|
('model_id', '=', self.groups_model_id),
|
||||||
('method', '=', 'create'),
|
('method', '=', 'create'),
|
||||||
('res_id', '=', group.id),
|
('res_id', '=', group.id),
|
||||||
]))
|
]).ensure_one())
|
||||||
group.write({'name': 'Testgroup1'})
|
group.write({'name': 'Testgroup1'})
|
||||||
self.assertTrue(auditlog_log.search([
|
self.assertTrue(auditlog_log.search([
|
||||||
('model_id', '=', groups_model_id),
|
('model_id', '=', self.groups_model_id),
|
||||||
('method', '=', 'write'),
|
('method', '=', 'write'),
|
||||||
('res_id', '=', group.id),
|
('res_id', '=', group.id),
|
||||||
]))
|
]).ensure_one())
|
||||||
group.unlink()
|
group.unlink()
|
||||||
self.assertTrue(auditlog_log.search([
|
self.assertTrue(auditlog_log.search([
|
||||||
('model_id', '=', groups_model_id),
|
('model_id', '=', self.groups_model_id),
|
||||||
('method', '=', 'unlink'),
|
('method', '=', 'unlink'),
|
||||||
('res_id', '=', group.id),
|
('res_id', '=', group.id),
|
||||||
]))
|
]).ensure_one())
|
||||||
|
|
||||||
def test_LogCreation2(self):
|
def test_LogCreation2(self):
|
||||||
"""Second test, using cached data of the first one."""
|
"""Second test, using cached data of the first one."""
|
||||||
self.env['res.groups'].create({
|
auditlog_log = self.env['auditlog.log']
|
||||||
|
testgroup2 = self.env['res.groups'].create({
|
||||||
'name': 'testgroup2',
|
'name': 'testgroup2',
|
||||||
})
|
})
|
||||||
|
self.assertTrue(auditlog_log.search([
|
||||||
|
('model_id', '=', self.groups_model_id),
|
||||||
|
('method', '=', 'create'),
|
||||||
|
('res_id', '=', testgroup2.id),
|
||||||
|
]).ensure_one())
|
||||||
|
|
||||||
def test_LogCreation3(self):
|
def test_LogCreation3(self):
|
||||||
"""Third test, two groups, the latter being the parent of the former.
|
"""Third test, two groups, the latter being the parent of the former.
|
||||||
|
@ -68,7 +81,8 @@ class TestAuditlog(TransactionCase):
|
||||||
of a 'write' log with a deleted resource (so with no text
|
of a 'write' log with a deleted resource (so with no text
|
||||||
representation).
|
representation).
|
||||||
"""
|
"""
|
||||||
testgroup3 = self.env['res.groups'].create({
|
auditlog_log = self.env['auditlog.log']
|
||||||
|
testgroup3 = testgroup3 = self.env['res.groups'].create({
|
||||||
'name': 'testgroup3',
|
'name': 'testgroup3',
|
||||||
})
|
})
|
||||||
testgroup4 = self.env['res.groups'].create({
|
testgroup4 = self.env['res.groups'].create({
|
||||||
|
@ -76,6 +90,21 @@ class TestAuditlog(TransactionCase):
|
||||||
'implied_ids': [(4, testgroup3.id)],
|
'implied_ids': [(4, testgroup3.id)],
|
||||||
})
|
})
|
||||||
testgroup4.write({'implied_ids': [(2, testgroup3.id)]})
|
testgroup4.write({'implied_ids': [(2, testgroup3.id)]})
|
||||||
|
self.assertTrue(auditlog_log.search([
|
||||||
|
('model_id', '=', self.groups_model_id),
|
||||||
|
('method', '=', 'create'),
|
||||||
|
('res_id', '=', testgroup3.id),
|
||||||
|
]).ensure_one())
|
||||||
|
self.assertTrue(auditlog_log.search([
|
||||||
|
('model_id', '=', self.groups_model_id),
|
||||||
|
('method', '=', 'create'),
|
||||||
|
('res_id', '=', testgroup4.id),
|
||||||
|
]).ensure_one())
|
||||||
|
self.assertTrue(auditlog_log.search([
|
||||||
|
('model_id', '=', self.groups_model_id),
|
||||||
|
('method', '=', 'write'),
|
||||||
|
('res_id', '=', testgroup4.id),
|
||||||
|
]).ensure_one())
|
||||||
|
|
||||||
def test_LogInheritedField(self):
|
def test_LogInheritedField(self):
|
||||||
"""Check the log works well when updating an inherited field
|
"""Check the log works well when updating an inherited field
|
||||||
|
@ -102,7 +131,7 @@ class TestAuditlog(TransactionCase):
|
||||||
('model_id', '=', users_model_id),
|
('model_id', '=', users_model_id),
|
||||||
('method', '=', 'create'),
|
('method', '=', 'create'),
|
||||||
('res_id', '=', user.id),
|
('res_id', '=', user.id),
|
||||||
]))
|
]).ensure_one())
|
||||||
# Log 'read'
|
# Log 'read'
|
||||||
data = user.read()[0]
|
data = user.read()[0]
|
||||||
self.assertIn('lang', data)
|
self.assertIn('lang', data)
|
||||||
|
|
Loading…
Reference in New Issue