2021-05-19 22:56:54 +08:00
|
|
|
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'])
|
2021-05-19 22:56:54 +08:00
|
|
|
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
|