1
0
mirror of https://github.com/pi-hole/pi-hole synced 2024-12-21 22:38:08 +00:00
pi-hole/test
pvogt09 cedd1a2591
unit test for umask problems in #3177 and #2730 (#3191)
* add test for file permissions of $webroot

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* changes sudo to su for running command as user www-data

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* installs PIHOLE_WEB_DEPS to create LIGHTTPD_USER

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* changes stdout to rc

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* use installPihole instead of installPiholeWeb in test

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* try installation process with main

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* mock systemctl

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* removes stickler errors

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* start lighttpd and make webpage test optional

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* test all files and directories in $webroot

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* fix stickler and codefactor warnings

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* set permission for /var/cache if it did not exist before

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* add test case for pihole files

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* fix stickler errors

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* revert "set permission for /var/cache if it did not exist before" and make lighttpd start work

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* add --add-cap=NET_ADMIN to enable FTL start

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* specify DNS server for cURL

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* check files created by FTL

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* reorder code and change nameserver in /etc/resolv.conf

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* resolve with dig instead of relying on /etc/resolv.conf

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* set IP to 127.0.0.1 in setupVars.conf for blockpage tests

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* resolve domain with dig and remove debug output

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* fix stickler errors

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* no git pull in Github Action runs for pull requests

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* --cap-add=ALL test

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* fix stickler errors

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* remove debug code

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* update_repo patch for CentOS 7 in Github Actions

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* removes TODOs and stickler warnings

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* adds trailing slash to domain

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* use only first result from dig

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* domain name resolution does not work reliably in docker container

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* repair executable permission

Signed-off-by: pvogt09 <50047961+pvogt09@users.noreply.github.com>

* Create mock_command_passthrough that allows intercepting of specific arguments - everything else is passed through to the proper command. Use this new command instead of making changes in basic-install.sh to make the tests pass.

Signed-off-by: Adam Warner <me@adamwarner.co.uk>

Co-authored-by: Adam Warner <me@adamwarner.co.uk>
2021-11-11 16:44:57 +00:00
..
__init__.py setupVar tests passing for debian & centos 2016-10-10 23:14:39 -05:00
_centos_7.Dockerfile add OS_CHECK_DOMAIN_NAME override to all the dockerfiles 2021-07-14 22:41:17 +01:00
_centos_8.Dockerfile add OS_CHECK_DOMAIN_NAME override to all the dockerfiles 2021-07-14 22:41:17 +01:00
_debian_9.Dockerfile add OS_CHECK_DOMAIN_NAME override to all the dockerfiles 2021-07-14 22:41:17 +01:00
_debian_10.Dockerfile add OS_CHECK_DOMAIN_NAME override to all the dockerfiles 2021-07-14 22:41:17 +01:00
_debian_11.Dockerfile Support and test Debian Bullsye (11) 2021-07-07 19:09:54 +00:00
_fedora_33.Dockerfile add OS_CHECK_DOMAIN_NAME override to all the dockerfiles 2021-07-14 22:41:17 +01:00
_fedora_34.Dockerfile update tests: remove fedora 32, add fedora 34 (#4403) 2021-10-23 19:43:20 +01:00
_ubuntu_16.Dockerfile add OS_CHECK_DOMAIN_NAME override to all the dockerfiles 2021-07-14 22:41:17 +01:00
_ubuntu_18.Dockerfile add OS_CHECK_DOMAIN_NAME override to all the dockerfiles 2021-07-14 22:41:17 +01:00
_ubuntu_20.Dockerfile add OS_CHECK_DOMAIN_NAME override to all the dockerfiles 2021-07-14 22:41:17 +01:00
_ubuntu_21.Dockerfile add tests for ubuntu 21 2021-07-14 22:36:02 +01:00
conftest.py unit test for umask problems in #3177 and #2730 (#3191) 2021-11-11 16:44:57 +00:00
README.md unit test for umask problems in #3177 and #2730 (#3191) 2021-11-11 16:44:57 +00:00
requirements.txt Remove Travis CI config 2020-12-01 10:02:31 +00:00
setup.py Remove Travis CI config 2020-12-01 10:02:31 +00:00
test_automated_install.py unit test for umask problems in #3177 and #2730 (#3191) 2021-11-11 16:44:57 +00:00
test_centos_7_support.py Select proper PHP version on RPM based OS after INSTALLER_DEPS have been installed (#4325) 2021-09-12 13:40:37 -07:00
test_centos_8_support.py Select proper PHP version on RPM based OS after INSTALLER_DEPS have been installed (#4325) 2021-09-12 13:40:37 -07:00
test_centos_common_support.py Select proper PHP version on RPM based OS after INSTALLER_DEPS have been installed (#4325) 2021-09-12 13:40:37 -07:00
test_centos_fedora_common_support.py appease stickler-ci 2020-12-01 10:13:36 +00:00
test_fedora_support.py Select proper PHP version on RPM based OS after INSTALLER_DEPS have been installed (#4325) 2021-09-12 13:40:37 -07:00
tox.centos_7.ini Remove Travis CI config 2020-12-01 10:02:31 +00:00
tox.centos_8.ini Remove Travis CI config 2020-12-01 10:02:31 +00:00
tox.debian_9.ini Remove Travis CI config 2020-12-01 10:02:31 +00:00
tox.debian_10.ini Remove Travis CI config 2020-12-01 10:02:31 +00:00
tox.debian_11.ini Support and test Debian Bullsye (11) 2021-07-07 19:09:54 +00:00
tox.fedora_33.ini update tests to fedora 33 2021-01-21 20:20:07 -06:00
tox.fedora_34.ini update tests: remove fedora 32, add fedora 34 (#4403) 2021-10-23 19:43:20 +01:00
tox.ubuntu_16.ini Remove Travis CI config 2020-12-01 10:02:31 +00:00
tox.ubuntu_18.ini Remove Travis CI config 2020-12-01 10:02:31 +00:00
tox.ubuntu_20.ini Remove Travis CI config 2020-12-01 10:02:31 +00:00
tox.ubuntu_21.ini add tests for ubuntu 21 2021-07-14 22:36:02 +01:00

Recommended way to run tests

Make sure you have Docker and Python w/pip package manager.

From command line all you need to do is:

  • pip install tox
  • tox

Tox handles setting up a virtual environment for python dependencies, installing dependencies, building the docker images used by tests, and finally running tests. It's an easy way to have travis-ci like build behavior locally.

Alternative py.test method of running tests

You're responsible for setting up your virtual env and dependencies in this situation.

py.test -vv -n auto -m "build_stage"
py.test -vv -n auto -m "not build_stage"

The build_stage tests have to run first to create the docker images, followed by the actual tests which utilize said images. Unless you're changing your dockerfiles you shouldn't have to run the build_stage every time - but it's a good idea to rebuild at least once a day in case the base Docker images or packages change.

How do I debug python?

Highly recommended: Setup PyCharm on a Docker enabled machine. Having a python debugger like PyCharm changes your life if you've never used it :)