From 43fe8df1fd43a2dfc349ab3d587d1c75032e9e67 Mon Sep 17 00:00:00 2001 From: Manuel Barkhau Date: Sun, 4 Oct 2020 21:37:03 +0000 Subject: [PATCH] fix grep regression --- .gitlab-ci.yml | 15 +++++++++++++-- src/pycalver/__main__.py | 14 ++++++++------ test/test_cli.py | 30 +++++++++--------------------- 3 files changed, 30 insertions(+), 29 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8cd378a..e213607 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,7 +18,7 @@ lint: allow_failure: false -unit: +test: # NOTE: Resource_group is conservative and can be disabled # for simple tests. It should be enabled if the tests # need exclusive access to some common resource. The @@ -29,7 +29,6 @@ unit: image: registry.gitlab.com/mbarkhau/pycalver/base script: - make test - - make test_compat coverage: '/^(TOTAL|src).*?(\d+\%)$/' artifacts: reports: @@ -39,6 +38,18 @@ unit: - reports/testcov/ allow_failure: false +test_compat: + # NOTE: Resource_group is conservative and can be disabled + # for simple tests. It should be enabled if the tests + # need exclusive access to some common resource. The + # resource_group will prevent multiple pipelines from + # running concurrently. + # resource_group: test-unit + stage: test + image: registry.gitlab.com/mbarkhau/pycalver/base + script: + - make test_compat + allow_failure: false pages: stage: build diff --git a/src/pycalver/__main__.py b/src/pycalver/__main__.py index 8be9063..7053ac9 100755 --- a/src/pycalver/__main__.py +++ b/src/pycalver/__main__.py @@ -285,21 +285,23 @@ def grep( ) sys.exit(1) else: - if is_version_pattern_required: - normalize_pattern = v2patterns.normalize_pattern(version_pattern, raw_pattern) - else: - normalize_pattern = raw_pattern + version_pattern = "vYYYY0M.BUILD[-RELEASE]" + + if is_version_pattern_required: + normalized_pattern = v2patterns.normalize_pattern(version_pattern, raw_pattern) + else: + normalized_pattern = raw_pattern isatty = getattr(sys.stdout, 'isatty', lambda: False) if isatty(): colorama.init() try: - _grep(normalize_pattern, files, color=True) + _grep(normalized_pattern, files, color=True) finally: colorama.deinit() else: - _grep(normalize_pattern, files, color=False) + _grep(normalized_pattern, files, color=False) @cli.command() diff --git a/test/test_cli.py b/test/test_cli.py index 99a1e69..e3922d7 100644 --- a/test/test_cli.py +++ b/test/test_cli.py @@ -738,21 +738,14 @@ def test_grep(runner): # search_re = r"^\s+2:\s+Hello World v201701\.1002-alpha !" - result1 = runner.invoke(cli, ['grep', r"vYYYY0M.BUILD[-RELEASE]", "README.md"]) + cmd1 = r'grep "vYYYY0M.BUILD[-RELEASE]" README.md' + result1 = runner.invoke(cli, shlex.split(cmd1)) assert result1.exit_code == 0 assert "README.md" in result1.output assert re.search(search_re, result1.output, flags=re.MULTILINE) - result2 = runner.invoke( - cli, - [ - 'grep', - "--version-pattern", - r"vYYYY0M.BUILD[-RELEASE]", - "{version}", - "README.md", - ], - ) + cmd2 = r'grep --version-pattern "vYYYY0M.BUILD[-RELEASE]" "{version}" README.md' + result2 = runner.invoke(cli, shlex.split(cmd2)) assert result2.exit_code == 0 assert "README.md" in result2.output assert re.search(search_re, result2.output, flags=re.MULTILINE) @@ -761,21 +754,16 @@ def test_grep(runner): search_re = r"^\s+3:\s+\[aka\. 201701\.1002a0 \!\]" - result3 = runner.invoke(cli, ['grep', r"\[aka. YYYY0M.BLD[PYTAGNUM] \!\]", "README.md"]) + cmd3 = r'grep "\[aka. YYYY0M.BLD[PYTAGNUM] \!\]" README.md' + result3 = runner.invoke(cli, shlex.split(cmd3)) assert result3.exit_code == 0 assert "README.md" in result3.output assert re.search(search_re, result3.output, flags=re.MULTILINE) - result4 = runner.invoke( - cli, - [ - 'grep', - "--version-pattern", - r"vYYYY0M.BUILD[-RELEASE]", - r"\[aka. {pep440_version} \!\]", - "README.md", - ], + cmd4 = ( + r'grep --version-pattern "vYYYY0M.BUILD[-RELEASE]" "\[aka. {pep440_version} \!\]" README.md' ) + result4 = runner.invoke(cli, shlex.split(cmd4)) assert result4.exit_code == 0 assert "README.md" in result4.output assert re.search(search_re, result4.output, flags=re.MULTILINE)