summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2021-06-23 13:56:07 +0200
committerGitHub <noreply@github.com>2021-06-23 07:56:07 -0400
commit1bccd866ae59ea3ea99585bc1788c1146391bb28 (patch)
tree5cccc6df2296edb4d22bb4aaa1efff1505d9334f
parent97f0c3ccd9f0a40896998a7580150a514ec3bc37 (diff)
downloadspack-1bccd866ae59ea3ea99585bc1788c1146391bb28.tar.gz
spack-1bccd866ae59ea3ea99585bc1788c1146391bb28.tar.bz2
spack-1bccd866ae59ea3ea99585bc1788c1146391bb28.tar.xz
spack-1bccd866ae59ea3ea99585bc1788c1146391bb28.zip
Fix broken CI for package only PRs, make dateutil not strictly required (#24484)
* Force the Python interpreter with an env variable This commit forces the Python interpreter with an environment variable, to ensure that the Python set by the "setup-python" action is the one being used. Due to the policy adopted by Spack to prefer python3 over python we may end up picking a Python 3.X interpreter where Python 2.7 was meant to be used. * Revert "Update conftest.py (#24473)" This reverts commit 477c8ce8205ec149fa897c9d83e530815c978d8b. * Make python-dateutil a soft dependency for unit tests Before #23212 people could clone spack and run ``` spack unit-tests ``` while now this is not possible, since python-dateutil is a required but not vendored dependency. This change makes it not a hard requirement, i.e. it will be used if found in the current interpreter. * Workaround mypy complaint
-rw-r--r--.github/workflows/unit_tests.yaml4
-rw-r--r--lib/spack/spack/test/conftest.py11
2 files changed, 9 insertions, 6 deletions
diff --git a/.github/workflows/unit_tests.yaml b/.github/workflows/unit_tests.yaml
index 6d5901edd1..726c56e617 100644
--- a/.github/workflows/unit_tests.yaml
+++ b/.github/workflows/unit_tests.yaml
@@ -156,6 +156,8 @@ jobs:
make -C ${KCOV_ROOT}/build && sudo make -C ${KCOV_ROOT}/build install
- name: Bootstrap clingo from sources
if: ${{ matrix.concretizer == 'clingo' }}
+ env:
+ SPACK_PYTHON: python
run: |
. share/spack/setup-env.sh
spack external find --not-buildable cmake bison
@@ -163,6 +165,7 @@ jobs:
- name: Run unit tests (full suite with coverage)
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
env:
+ SPACK_PYTHON: python
COVERAGE: true
SPACK_TEST_SOLVER: ${{ matrix.concretizer }}
run: |
@@ -172,6 +175,7 @@ jobs:
- name: Run unit tests (reduced suite without coverage)
if: ${{ needs.changes.outputs.with_coverage == 'false' }}
env:
+ SPACK_PYTHON: python
ONLY_PACKAGES: true
SPACK_TEST_SOLVER: ${{ matrix.concretizer }}
run: |
diff --git a/lib/spack/spack/test/conftest.py b/lib/spack/spack/test/conftest.py
index 8d0ff77bb9..2443d0edf0 100644
--- a/lib/spack/spack/test/conftest.py
+++ b/lib/spack/spack/test/conftest.py
@@ -12,20 +12,19 @@ import os
import os.path
import re
import shutil
-import sys
import tempfile
import xml.etree.ElementTree
-if sys.version_info >= (3,):
+try:
# CVS outputs dates in different formats on different systems. We are using
# the dateutil package to parse these dates. This package does not exist
- # for Python 2.x. That means that we cannot test checkouts "by date" for
+ # for Python <2.7. That means that we cannot test checkouts "by date" for
# CVS respositories. (We can still use CVS repos with all features, only
# our tests break.)
from dateutil.parser import parse as parse_date
-else:
- def parse_date(string):
- pytest.skip("dateutil package not available for Python 2.6")
+except ImportError:
+ def parse_date(string): # type: ignore
+ pytest.skip("dateutil package not available")
import py
import pytest