[stable-2.13] Catch ImportError when pyyaml doesn't have libyaml extension (#77434) (#77459)

* [stable-2.13] Catch ImportError when pyyaml doesn't have libyaml extension (#77434)
(cherry picked from commit e3aa73c)

Co-authored-by: Matt Martz <matt@sivel.net>

* Add test to assert that missing libyaml doesn't result in an error. Fixes #77437

(cherry picked from commit 2797dc644a)
pull/77475/head
Matt Martz 3 years ago committed by GitHub
parent ee9705a1ce
commit 85341c3e5d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -27,7 +27,7 @@ if HAS_YAML:
from yaml.cyaml import CParser as Parser
HAS_LIBYAML = True
except AttributeError:
except (ImportError, AttributeError):
from yaml import SafeLoader # type: ignore[misc]
from yaml import SafeDumper # type: ignore[misc]
from yaml.parser import Parser # type: ignore[misc]

@ -0,0 +1,2 @@
shippable/posix/group5
context/controller

@ -0,0 +1,11 @@
#!/usr/bin/env bash
set -eu
source virtualenv.sh
set +x
# deps are already installed, using --no-deps to avoid re-installing them
# Install PyYAML without libyaml to validate ansible can run
PYYAML_FORCE_LIBYAML=0 pip install --no-binary PyYAML --ignore-installed --no-cache-dir --no-deps PyYAML
ansible --version | tee /dev/stderr | grep 'libyaml = False'
Loading…
Cancel
Save