mim/tests/test_install.py

87 lines
2.5 KiB
Python
Raw Normal View History

import os
import os.path as osp
import subprocess
import tempfile
from click.testing import CliRunner
from mim.commands.install import cli as install
from mim.commands.uninstall import cli as uninstall
def test_third_party():
runner = CliRunner()
# mim install fire
result = runner.invoke(install, ['fire'])
assert result.exit_code == 0
# mim uninstall fire --yes
result = runner.invoke(uninstall, ['fire', '--yes'])
assert result.exit_code == 0
def test_mmcv_install():
runner = CliRunner()
# mim install mmcv-full --yes
# install latest version
result = runner.invoke(install, ['mmcv-full', '--yes'])
assert result.exit_code == 0
2021-05-20 12:42:18 +08:00
# mim install mmcv-full==1.3.1 --yes
result = runner.invoke(install, ['mmcv-full==1.3.1', '--yes'])
assert result.exit_code == 0
# mim uninstall mmcv-full --yes
result = runner.invoke(uninstall, ['mmcv-full', '--yes'])
assert result.exit_code == 0
# version should be less than latest version
# mim install mmcv-full==100.0.0 --yes
result = runner.invoke(install, ['mmcv-full==100.0.0', '--yes'])
assert result.exit_code == 1
def test_mmrepo_install():
runner = CliRunner()
# install local repo
with tempfile.TemporaryDirectory() as temp_root:
repo_root = osp.join(temp_root, 'mmclassification')
subprocess.check_call([
'git', 'clone',
'https://github.com/open-mmlab/mmclassification.git', repo_root
])
# mim install .
current_root = os.getcwd()
os.chdir(repo_root)
result = runner.invoke(install, ['.', '--yes'])
assert result.exit_code == 0
os.chdir('..')
# mim install ./mmclassification
result = runner.invoke(install, ['./mmclassification', '--yes'])
assert result.exit_code == 0
# mim install mmclassification
result = runner.invoke(install, ['mmclassification', '--yes'])
assert result.exit_code == 0
os.chdir(current_root)
# mim install mmcls --yes
result = runner.invoke(install, ['mmcls', '--yes'])
assert result.exit_code == 0
# mim install mmcls -f https://github.com/open-mmlab/mmclassification.git
# install master branch
result = runner.invoke(install, [
'mmcls', '--yes', '-f',
'https://github.com/open-mmlab/mmclassification.git'
])
# mim install mmcls==0.11.0 --yes
result = runner.invoke(install, ['mmcls==0.11.0', '--yes'])
assert result.exit_code == 0