12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- # Copyright (c) OpenMMLab. All rights reserved.
- 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
- # 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 -e ./mmclassification
- result = runner.invoke(install, ['-e', './mmclassification', '--yes'])
- assert result.exit_code == 0
- os.chdir(current_root)
- # mim install git+https://github.com/open-mmlab/mmclassification.git
- result = runner.invoke(
- install, ['git+https://github.com/open-mmlab/mmclassification.git'])
- assert result.exit_code == 0
- # mim install mmcls --yes
- result = runner.invoke(install, ['mmcls', '--yes'])
- assert result.exit_code == 0
- # mim install mmcls==0.11.0 --yes
- result = runner.invoke(install, ['mmcls==0.11.0', '--yes'])
- assert result.exit_code == 0
- result = runner.invoke(uninstall, ['mmcv-full', '--yes'])
- assert result.exit_code == 0
- result = runner.invoke(uninstall, ['mmcls', '--yes'])
- assert result.exit_code == 0
|