mim/tests/test_search.py
yancong xiao 77f5866a67
[Chore] Fix the issue that the click version is locked at 7.x (#127)
* fix the issue that the click version is locked at 7.x

* add .vscode into .gitignore

* fix the issue that the click version is locked at 7.x

* add .vscode into .gitignore

* refine(click/compat.py): remove helper function

* chore(ci): add click<8.0.0 tests in ci

* refine(commands): refine imports

* commit suggestion(mim/click/option.py): refine doc comments.

Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>

* commit suggestion(mim/click/compat.py): add typing hint

Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>

* commit suggestion(mim/click/compat.py): add line comment

Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>

* commit suggestion(mim/click/compat.py): add typing hit in doc comment

Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>

* update(click/compat.py): add typing hint

* tests(tests/test_search): add a simple functional test for OptionEatAll

Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>
2022-06-16 15:55:21 +08:00

124 lines
4.3 KiB
Python

# Copyright (c) OpenMMLab. All rights reserved.
import os.path as osp
from click.testing import CliRunner
from mim.commands.install import cli as install
from mim.commands.search import cli as search
from mim.commands.uninstall import cli as uninstall
from mim.utils import DEFAULT_CACHE_DIR
def setup_module():
runner = CliRunner()
result = runner.invoke(uninstall, ['mmcv-full', '--yes'])
assert result.exit_code == 0
result = runner.invoke(uninstall, ['mmcls', '--yes'])
assert result.exit_code == 0
def test_search():
runner = CliRunner()
result = runner.invoke(install, ['mmcls', '--yes'])
assert result.exit_code == 0
# mim search mmcls
result = runner.invoke(search, ['mmcls'])
assert result.exit_code == 0
# mim search mmcls --remote
# search master branch
result = runner.invoke(search, ['mmcls', '--remote'])
assert result.exit_code == 0
# mim search mmsegmentation --remote
result = runner.invoke(search, ['mmsegmentation', '--remote'])
assert result.exit_code == 0
# mim search mmaction2 --remote
result = runner.invoke(search, ['mmaction2', '--remote'])
assert result.exit_code == 0
# mim search mmcls==0.11.0 --remote
result = runner.invoke(search, ['mmcls==0.11.0', '--remote'])
assert result.exit_code == 0
# the metadata of mmcls==0.11.0 will be saved in cache
assert osp.exists(osp.join(DEFAULT_CACHE_DIR, 'mmcls-0.11.0.pkl'))
# always test latest mmcls
result = runner.invoke(uninstall, ['mmcls', '--yes'])
assert result.exit_code == 0
result = runner.invoke(install, ['mmcls', '--yes'])
assert result.exit_code == 0
# mim search mmcls --model res
# invalid model
result = runner.invoke(search, ['mmcls', '--model', 'res'])
assert result.exit_code == 1
# mim search mmcls --model resnet
result = runner.invoke(search, ['mmcls', '--model', 'resnet'])
assert result.exit_code == 0
# mim search mmcls --valid-config
result = runner.invoke(search, ['mmcls', '--valid-config'])
assert result.exit_code == 0
# mim search mmcls --config resnet18_b16x8_cifar1
# invalid config
result = runner.invoke(search,
['mmcls', '--config', 'resnet18_b16x8_cifar1'])
assert result.exit_code == 1
# mim search mmcls --config resnet18_b16x8_cifar10
result = runner.invoke(search,
['mmcls', '--config', 'resnet18_8xb16_cifar10'])
assert result.exit_code == 0
# mim search mmcls --dataset cifar-1
# invalid dataset
result = runner.invoke(search, ['mmcls', '--dataset', 'cifar-1'])
assert result.exit_code == 1
# mim search mmcls --dataset cifar-10
result = runner.invoke(search, ['mmcls', '--dataset', 'cifar-10'])
assert result.exit_code == 0
# mim search mmcls --condition 'batch_size>45,epochs>100'
result = runner.invoke(
search, ['mmcls', '--condition', 'batch_size>45,epochs>100'])
assert result.exit_code == 0
# mim search mmcls --condition 'batch_size>45 epochs>100'
result = runner.invoke(
search, ['mmcls', '--condition', 'batch_size>45 epochs>100'])
assert result.exit_code == 0
# mim search mmcls --condition '128<batch_size<=256'
result = runner.invoke(search,
['mmcls', '--condition', '128<batch_size<=256'])
assert result.exit_code == 0
# mim search mmcls --sort epoch
result = runner.invoke(search, ['mmcls', '--sort', 'epoch'])
assert result.exit_code == 0
# mim search mmcls --sort epochs
result = runner.invoke(search, ['mmcls', '--sort', 'epochs'])
assert result.exit_code == 0
# mim search mmcls --sort batch_size epochs
result = runner.invoke(search, ['mmcls', '--sort', 'batch_size', 'epochs'])
assert result.exit_code == 0
# mim search mmcls --field epoch
result = runner.invoke(search, ['mmcls', '--field', 'epoch'])
assert result.exit_code == 0
# mim search mmcls --field epochs
result = runner.invoke(search, ['mmcls', '--field', 'epochs'])
assert result.exit_code == 0
def teardown_module():
runner = CliRunner()
result = runner.invoke(uninstall, ['mmcv-full', '--yes'])
assert result.exit_code == 0
result = runner.invoke(uninstall, ['mmcls', '--yes'])
assert result.exit_code == 0