Browse Source

[IMP] Module 'auditlog' - Unsubscribe rules before removing them + Unit tests updated

pull/148/head
sebalix 10 years ago
parent
commit
8657f2ee74
  1. 6
      auditlog/models/rule.py
  2. 59
      auditlog/tests/test_auditlog.py

6
auditlog/models/rule.py

@ -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

59
auditlog/tests/test_auditlog.py

@ -22,45 +22,58 @@ from openerp.tests.common import TransactionCase
class TestAuditlog(TransactionCase): class TestAuditlog(TransactionCase):
def test_LogCreation(self):
"""First test, caching some data."""
auditlog_log = self.env['auditlog.log']
groups_model_id = self.env.ref('base.model_res_groups').id
self.env['auditlog.rule'].create({
def setUp(self):
super(TestAuditlog, self).setUp()
self.groups_model_id = self.env.ref('base.model_res_groups').id
self.groups_rule = 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…
Cancel
Save