Browse Source

Merge pull request #1271 from acsone/10.0-fix-module_auto_upgrade_null-dro

[10.0][FIX] module_auto_update: Don't set 'to upgrade' on void record…
pull/1275/head
Stéphane Bidoul (ACSONE) 6 years ago
committed by GitHub
parent
commit
9c21fdc4ff
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      module_auto_update/__manifest__.py
  2. 2
      module_auto_update/models/module.py
  3. 36
      module_auto_update/tests/test_module.py

2
module_auto_update/__manifest__.py

@ -5,7 +5,7 @@
{
'name': 'Module Auto Update',
'summary': 'Automatically update Odoo modules',
'version': '10.0.2.0.2',
'version': '10.0.2.0.3',
'category': 'Extra Tools',
'website': 'https://github.com/OCA/server-tools',
'author': 'LasLabs, '

2
module_auto_update/models/module.py

@ -32,6 +32,8 @@ class IncompleteUpgradeError(exceptions.UserError):
def ensure_module_state(env, modules, state):
# read module states, bypassing any Odoo cache
if not modules:
return
env.cr.execute(
"SELECT name FROM ir_module_module "
"WHERE id IN %s AND state != %s",

36
module_auto_update/tests/test_module.py

@ -180,6 +180,42 @@ class TestModuleAfterInstall(TransactionCase):
finally:
Bmu._revert_method('upgrade_module')
def test_incomplete_upgrade_no_checkusm(self):
Imm = self.env['ir.module.module']
Bmu = self.env['base.module.upgrade']
installed_modules = Imm.search(
[('state', '=', 'installed')])
# change the checksum of 'base'
Imm._save_installed_checksums()
saved_checksums = Imm._get_saved_checksums()
Imm._save_checksums(saved_checksums)
self.base_module.write({'state': 'to upgrade'})
def upgrade_module_mock(self_model):
upgrade_module_mock.call_count += 1
# since we are upgrading base, all installed module
# must have been marked to upgrade at this stage
self.assertEqual(self.base_module.state, 'to upgrade')
self.assertEqual(self.own_module.state, 'installed')
installed_modules.write({'state': 'installed'})
upgrade_module_mock.call_count = 0
# upgrade_changed_checksum commits, so mock that
with mock.patch.object(self.env.cr, 'commit'):
# we simulate an install by setting module states
Bmu._patch_method('upgrade_module',
upgrade_module_mock)
# got just other modules to_upgrade and no checksum ones
try:
Imm.upgrade_changed_checksum()
self.assertEqual(upgrade_module_mock.call_count, 1)
finally:
Bmu._revert_method('upgrade_module')
def test_nothing_to_upgrade(self):
Imm = self.env['ir.module.module']
Bmu = self.env['base.module.upgrade']

Loading…
Cancel
Save