Changelog
8.1.0
- [NEW] Add Windows support for File and Service modules
- [NEW] Add File.is_executable property
8.0.0
- [NEW] Add Group.members attribute
- [NEW] Add File.inode attribute
- [NEW] Add Interface.routes() method
- [NEW] Add Docker.is_restarting attribute
- [FIX] Fix possible error in Interface.default()
- [FIX] Fix busybox detection in Process module
- [FIX] Fix possible KeyError in SysInfo module
- [BREAKING] Drop support for python 3.7
7.0.1
- [FIX] Fix command -v compatibility with dash shell
7.0.0
- [NEW] Improved ssh config support in Paramiko backend
- [NEW] Add chroot backend
- [NEW] Add support for Manjaro-Linux
- [NEW] Add support for Cloudlinux
- [BREAKING] Drop support for python 3.6 which is EOL
6.8.0
- [NEW] Add support for AlmaLinux and RockyLinux
6.7.0
- [NEW] Handle ansible_connection type community.docker.docker
- [NEW] add ssh_extra_args option
6.6.0
- [NEW] Allow to test for user password expiration
- [NEW] Handle ANSIBLE_SSH_COMMON_ARGS and ANSIBLE_SSH_EXTRA_ARGS environment variables for ansible connections
- [FIX] Fix encoding issue in salt connections
- [FIX] Fix AttributeError when “command” is not available and fallback to “which”
6.5.0
- Fallback to which when “command -v” fails
- Use realpath by default to resolve symlinks instead of “readlink -f”
- ansible: Support environment variables
- Force package module to resolve to RpmPackage on Fedora
- Fix new versions of supervisor may exit with status != 0
- Eventually decode ansible output when it’s not ascii
- Either use python3 or python to get remote encoding
6.4.0
- Implement Interface names and default (#615)
- Implement Service.systemd_properties (#612)
6.3.0
- Fix #451 for use with pytest -p no:terminal
- Add client_version() and server_version() and version() to docker module.
6.2.0
- Fix #590: Systeminfo doesn’t resolve Windows correctly (#592)
- First implementation of network namespaces in addr module (#596)
- pip check support in PipPackage module (#605)
- pip refactoring: implementation of installed and version (#606)
- Allow to specify supervisorctl and supervisord.conf paths (#536)
6.1.0
- Fix wrong package module on CentOS having dpkg tools installed #570 (#575)
- Deduplicate hosts returned by get_backends() (#572)
- Use /run/systemd/system/ to detect systemd (fixes #546)
- Use ssh_args from ansible.cfg
- Require python >= 3.6
- Fix ValueError with python 3.8+ when using –nagios option.
6.0.0
- Breaking change: testinfra has moved to the https://github.com/pytest-dev/
organization. Project on PyPi is renamed as pytest-testinfra. A dummy
testinfra will make the transition, but you should rename to pytest-testinfra
in your requirements files.
5.3.0
- Add is_masked property on systemd service
5.2.2
- iptables: use -w option to wait for iptables lock when running in parallel
with pytest-xdist.
5.2.0
- Allow kubeconfig context to be supplied in kubernetes backend
- Drop file.__ne__ implementation and require python >= 3.5
5.1.0
- Use remote_user and remote_port in ansible.cfg
- Add arch (architecture) attribute to system_info module
5.0.0
- Breaking change: host.file().listdir() is now a method
4.1.0
- Pass extra arguments to ansible CLI via host.ansible()
- New method host.file.listdir() to list items in a directory.
3.4.0
- Add podman backend and module
- WARNING: this will be the latest testinfra version supporting python2, please
upgrade to python3.
3.3.0
- Add extras for backend dependencies (#454)
- Various enhancements of kitchen integration documentation
- ansible backend now support “password” field from ansible inventory
- New backend “openshift”
3.2.1
- Fix Process module when working with long strings (username, …) #505
3.2.0
- New module “environment” for getting remote environment variables
- New module “block_device” exposing block device information
- Add a global flag –force-ansible to the command line
- Raise an error in case of missing ansible inventory file
- Fix an escape issue with ansible ssh args set inventory or configuration file
3.1.0
- ssh connections uses persistent connections by default. You can disable this
by passing controlpersist=0 to the connections options.
- ansible ssh connections now use ssh backend instead of paramiko.
ansible_ssh_common_args and ansible_ssh_extra_args are now taking in account.
- Add a new ansible connection options “force_ansible”, when set to True,
testinfra will always call ansible for all commands he need to run.
- Handle all ansible connections types by setting force_ansible=True for
connections which doesn’t have a testinfra equivalent connection (for example
“network_cli”).
3.0.6
- Issue full command logging using DEBUG log level to avoid logging sensible data when log level is INFO.
- Fix possible crash when parsing ansible inventories #470
- Support using alternative kubeconfig file in kubectl connections #460
- Support parsing ProxyCommand from ssh_config for paramiko connections
3.0.5
- Set default timeout to 10s on ssh/paramiko connections
- Add support for ansible inventory parameter ansible_private_key_file
3.0.4
- Add support for ansible lxc and lxd connections
3.0.3
- Fix paramiko parsing RequestTTY from ssh configs
- Re-add “groups” key from ansible.get_variables() to be backward compatible
with testinfra 2.X
3.0.2
- Fix ansible with no inventory resolving to “localhost”
- Fix support for ansible 2.8 with no inventory
- Fix ansible/paramiko which wasn’t reading hosts config from ~/.ssh/config
- Allow to pass –ssh-config and –ssh-identity-file to ansible connection
3.0.1
- Fix parsing of ipv6 addresses for paramiko, ssh and ansible backends.
- Fix –connection=ansible invocation when no hosts are provided
2.1.0
- docker: new get_containers() classmethod
- socket: fix parsing of ipv6 addresses with new versions of ss
- service: systemd fallback to sysv when “systemctl is-active” is not working
2.0.0
- Add addr module, used to test network connectivity
- Drop deprecated “testinfra” command, you should use “py.test” instead
- Drop deprecated top level fixtures, access them through the fixture “host” instead.
- Drop support for ansible <= 2.4
1.19.0
- Add docker module
- Fix pytest 4 compatibility
1.18.0
- Allow to urlencode character in host specification “user:pass@host” (#387)
- Fix double logging from both pytest and testinfra
- Drop support for python 2.6
- Allow to configure timeouts for winrm backend
1.17.0
- Add support for ansible “become” user in ansible module
- Add failed/succeeded property on run() output
1.16.0
- packaging: Use setuptools_scm instead of pbr
- iptables: add ip6tables support
- sysctl: find sysctl outside of PATH (/sbin)
1.15.0
- Fix finding ss and netstat command in “sbin” paths for Centos (359)
- Add a workaround for https://github.com/pytest-dev/pytest/issues/3542
- Handle “starting” status for Service module on Alpine linux
- Fix no_ssl and no_verify_ssl options for WinRM backend
1.14.1
- Fix multi-host test ordering (#347), regression introduced in 1.13.1
- Fix Socket on OpenBSD hosts (#338)
1.14.0
- Add a new lxc backend
- Socket: fix is_listening for unix sockets
- Add namespace and container support for kubernetes backend
- Add a cache of parsed ansible inventories for ansible backend
- Service: fix service detection on Centos 6 hosts
- File: implement file comparison with string paths
1.13.1
- package: fix is_installed and version behavior for uninstalled packages (#321 and #326)
- ansible: Use predictibles test ordering when using pytest-xdist to fix random test collections errors (#316)
1.13.0
- socket: fix detection of udp listening sockets (#311)
- ssh backend: Add support for GSSAPI
1.12.0
- ansible: fix compatibility with ansible 2.5
- pip: fix compatibility with pip 10 (#299)
1.11.1
- Socket: fix error with old versions of ss without the –no-header option (#293)
1.11.0
- Fix bad error reporting when using ansible module without ansible backend (#288)
- Socket: add a new implementation using ss instead of netstat (#124)
- Add service, process, and systeminfo support for Alpine (#283)
1.10.1
- Fix get_variables() for ansible>=2.0,<2.4 (#274)
- Paramiko: Use the RequireTTY setting if specified in a provided SSHConfig (#247)
1.9.1
- Fix running testinfra within a suite using doctest (#268)
- Service: add is_valid method for systemd
- Fix file.linked_to() for Mac OS
1.9.0
- Interface: allow to find ‘ip’ command ousite of PATH
- Fix –nagios option with python 3
1.8.0
- Deprecate testinfra command (will be dropped in 2.0), use py.test instead #135
- Handle –nagios option when using py.test command
1.7.1
- Support for ansible 2.4 (#249)
1.7.0
- Salt: allow specify config directory (#230)
- Add a WinRM backend
- Socket: ipv6 sockets can handle ipv4 clients (#234)
- Service: Enhance upstart detection (#243)
1.6.5
- Service: add is_enabled() support for OpenBSD
- Add ssh identity file option for paramiko and ssh backends
- Expand tilde (~) to user home directory for ssh-config, ssh-identity-file and
ansible-inventory options
1.6.4
- Service: Allow to find ‘service’ command outside of $PATH #211
- doc fixes
1.6.3
- Fix unwanted deprecation warning when running tests with pytest 3.1 #204
1.6.2
- Fix wheel package for 1.6.1
1.6.1
- Support ansible 2.3 with python 3 (#197)
1.5.5
- backends: Fix ansible backend with ansible >= 2.3 (#195)
1.5.4
- backends: fallback to UTF-8 encoding when system encoding is ASCII.
- Service: fix is_running() on systems using Upstart
1.5.3
- Sudo: restore backend command in case of exceptions
1.5.2
- Honnor become_user when using the ansible backend
1.5.1
- Add dependency on importlib on python 2.6
1.5.0
- New kubectl backend
- Command: check_output strip carriage return and newlines (#164)
- Package: rpm improve getting version() and release()
- User: add gecos (comment) field (#155)
1.4.5
- SystemInfo: detect codename from VERSION_CODENAME in /etc/os-release
(fallback when lsb_release isn’t installed).
- Package: add release property for rpm based systems.