From b8e7c8ee8fe3be1d8f47e208491ba485d798e893 Mon Sep 17 00:00:00 2001 From: Mashiro <57566630+HAOCHENYE@users.noreply.github.com> Date: Sat, 19 Feb 2022 12:22:15 +0800 Subject: [PATCH] Fix test_auto_argparse when pytest has multiple arguments (#34) --- mmengine/config/config.py | 6 +++++- tests/data/config/py_config/test_code_in_config.py | 2 +- tests/test_config/test_config.py | 6 ++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/mmengine/config/config.py b/mmengine/config/config.py index 4b7602d9..82eecda3 100644 --- a/mmengine/config/config.py +++ b/mmengine/config/config.py @@ -4,7 +4,6 @@ import copy import os import os.path as osp import platform -import re import shutil import sys import tempfile @@ -26,6 +25,11 @@ DELETE_KEY = '_delete_' DEPRECATION_KEY = '_deprecation_' RESERVED_KEYS = ['filename', 'text', 'pretty_text'] +if platform.system() == 'Windows': + import regex as re +else: + import re # type: ignore + class ConfigDict(Dict): """A dictionary for config which has the same interface as python's built- diff --git a/tests/data/config/py_config/test_code_in_config.py b/tests/data/config/py_config/test_code_in_config.py index cd59844b..d39c7cff 100644 --- a/tests/data/config/py_config/test_code_in_config.py +++ b/tests/data/config/py_config/test_code_in_config.py @@ -1,5 +1,5 @@ # Copyright (c) OpenMMLab. All rights reserved. -from mmcv import Config # isort:skip +from mmengine import Config # isort:skip cfg = Config.fromfile('tests/data/config/py_config/simple_config.py') item5 = cfg.item1[0] + cfg.item2.a diff --git a/tests/test_config/test_config.py b/tests/test_config/test_config.py index dc80de8c..87f08c82 100644 --- a/tests/test_config/test_config.py +++ b/tests/test_config/test_config.py @@ -169,7 +169,9 @@ class TestConfig: cfg.merge_from_dict(input_options, allow_list_keys=True) def test_auto_argparser(self): - tmp = sys.argv[1] + # Temporarily make sys.argv only has one argument and keep backups + tmp = sys.argv[1:] + sys.argv = sys.argv[:2] sys.argv[1] = osp.join( self.data_path, 'config/py_config/test_merge_from_multiple_bases.py') @@ -181,7 +183,7 @@ class TestConfig: assert not getattr(args, key) # TODO currently do not support nested keys, bool args will be # overwritten by int - sys.argv[1] = tmp + sys.argv.extend(tmp) def test_dump(self, tmp_path): file_path = 'config/py_config/test_merge_from_multiple_bases.py' -- GitLab