Odoo18-Base/odoo/addons/base/tests/test_upgrade_code.py
2025-01-06 10:57:38 +07:00

50 lines
1.6 KiB
Python

import subprocess as sp
import sys
from os.path import join as opj, realpath
from odoo.tools import config
from odoo.tests import BaseCase
class TestCommand(BaseCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.odoo_bin = realpath(opj(__file__, '../../../../../odoo-bin'))
def run_command(self, *args, check=True, capture_output=True, text=True, **kwargs):
return sp.run(
[
sys.executable,
self.odoo_bin,
f'--addons-path={config["addons_path"]}',
*args,
],
capture_output=capture_output,
check=check,
text=text,
**kwargs
)
def test_upgrade_code_example(self):
proc = self.run_command('upgrade_code', '--script', '17.5-00-example', '--dry-run')
self.assertFalse(proc.stdout, "there should be no file modified by the example script")
self.assertFalse(proc.stderr)
def test_upgrade_code_help(self):
proc = self.run_command('upgrade_code', '--help')
self.assertIn("usage: ", proc.stdout)
self.assertIn("Rewrite the entire source code", proc.stdout)
self.assertFalse(proc.stderr)
def test_upgrade_code_standalone(self):
from odoo.cli import upgrade_code # noqa: PLC0415
proc = sp.run(
[sys.executable, upgrade_code.__file__, '--help'],
check=True, capture_output=True, text=True
)
self.assertIn("usage: ", proc.stdout)
self.assertIn("Rewrite the entire source code", proc.stdout)
self.assertFalse(proc.stderr)