aurweb/TESTING
Frédéric Mangano-Tarumi 8a13500535 Create aurweb.spawn for spawing the test server
This program makes it easier for developers to spawn the PHP server
since it fetches automatically what it needs from the configuration
file, rather than having the user explicitly pass arguments to the php
executable.

When the setup gets more complicated as we introduce Python,
aurweb.spawn will keep providing the same interface, while under the
hood it is planned to support running multiple sub-processes.

Its Python interface provides an way for the test suite to spawn the
test server when it needs to perform HTTP requests to the test server.

The current implementation is somewhat weak as it doesn’t detect when a
child process dies, but this is not supposed to happen often, and it is
only meant for aurweb developers.

In the long term, aurweb.spawn will eventually become obsolete, and
replaced by Docker or Flask’s tools.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2021-02-20 11:24:30 -05:00

37 lines
1.1 KiB
Text

Setup Testing Environment
=========================
Note that this setup is only to test the web interface. If you need to have a
full aurweb instance with cgit, ssh interface, etc, follow the directions in
INSTALL.
1) Clone the aurweb project:
$ git clone git://git.archlinux.org/aurweb.git
2) Install the necessary packages:
# pacman -S --needed php php-sqlite sqlite words fortune-mod \
python python-sqlalchemy python-alembic
Ensure to enable the pdo_sqlite extension in php.ini.
3) Copy conf/config.defaults to conf/config and adjust the configuration
Pay attention to disable_http_login, enable_maintenance, aur_location and
htmldir.
Be sure to change backend to sqlite and name to the file location of your
created test database.
4) Prepare the testing database:
$ cd /path/to/aurweb/
$ python -m aurweb.initdb
$ cd /path/to/aurweb/schema
$ ./gendummydata.py out.sql
$ sqlite3 path/to/aurweb.sqlite3 < out.sql
5) Run the test server:
$ AUR_CONFIG='/path/to/aurweb/conf/config' python -m aurweb.spawn