50 lines
1.6 KiB
Python
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)
|