Testing
Go to file
Jelle van der Waa 7d098e62e7 remove kartenzia as commercial sponsor
Kartenzia no longer sponsors a dedicated server.

Signed-off-by: Jelle van der Waa <jelle@archlinux.org>
2019-02-24 19:32:21 +01:00
devel Revert "rewrite logic to put some key at the beginning of the OrderedDict" 2019-02-24 16:50:15 +01:00
main main: remove leftover try/ImportError for Python2/3 2019-02-18 20:14:56 +01:00
mirrors mirrors: remove duplicate function 2019-02-24 17:40:16 +01:00
news news: fix xml sitemap 2019-02-09 19:12:57 +01:00
packages flag: move inline css to a separate file 2019-02-18 16:42:51 +01:00
public remove unecessary list calls 2019-02-01 21:27:57 +01:00
releng Update migrations for Python 3 2019-01-21 21:19:58 +01:00
retro retro: create tests for retro pages 2017-05-28 17:28:08 +02:00
sitestatic remove kartenzia as commercial sponsor 2019-02-24 19:32:21 +01:00
templates remove kartenzia as commercial sponsor 2019-02-24 19:32:21 +01:00
todolists Update migrations for Python 3 2019-01-21 21:19:58 +01:00
visualize main: run 2to3 2019-01-21 21:19:58 +01:00
.coveragerc Misc fixes (#84) 2018-02-18 04:33:52 -05:00
.gitattributes Add gitattributes file 2010-09-30 12:51:36 -05:00
.gitignore add mypy_cache to gitignore 2019-02-01 21:27:57 +01:00
.pylintrc pylint: comment out warning without code changes 2019-02-24 17:59:33 +01:00
.pyup.yml create pyup.io config file 2018-05-31 20:35:29 +02:00
.travis.yml Run tests under Python 3.6 2019-01-21 21:19:58 +01:00
archweb.wsgi Fix hardcoded python version in archweb.wsgi 2019-01-21 21:19:58 +01:00
AUTHORS Add myself as maintainer 2018-06-08 19:02:11 +02:00
feeds.py feeds.py: join of bytes to a str 2019-01-21 21:19:58 +01:00
HACKING update documentation 2008-10-10 18:38:08 -04:00
LICENSE Initial import for public release... 2007-11-03 03:45:10 -04:00
local_settings.py.example Remove CDN configuration option 2017-06-29 16:32:44 +02:00
manage.py Switch shebang for Python 3 support 2019-01-21 21:19:58 +01:00
README Move markdown formatted readme to README.md 2013-11-25 21:54:15 -06:00
README.md README: add optional dependency on rsync 2019-02-21 19:56:19 +01:00
requirements_prod.txt Bump requirements (#90) 2018-03-23 19:15:12 -04:00
requirements.txt Implement CSP for archweb 2019-02-18 16:42:51 +01:00
settings.py Add base-uri and frame-ancestors to CSP 2019-02-24 17:14:17 +01:00
sitemaps.py news: fix xml sitemap 2019-02-09 19:12:57 +01:00
urls.py urls.py: use Django 2.0 simplified url routing syntax 2019-02-18 21:08:50 +01:00

Archweb README

Build Status Coverage Status

To get a pretty version of this document, run

$ markdown README > README.html

License

See LICENSE file.

Authors

See AUTHORS file.

Dependencies

  • python
  • python-virtualenv
  • rsync (optional for mirrorcheck with rsync mirrors)

Python dependencies

More detail in requirements.txt and requirements_prod.txt; it is best to use virtualenv and pip to handle these. But if you insist on (Arch Linux) packages, you will probably want the following:

  • python-django
  • python-psycopg2
  • python-markdown
  • python-memcached

Testing Installation

  1. Run virtualenv3.

     cd /path/to/archweb && virtualenv3 ./env/
    
  2. Activate the virtualenv.

     source ./env/bin/activate
    
  3. Install dependencies through pip.

     pip install -r requirements.txt
    
  4. Copy local_settings.py.example to local_settings.py and modify. Make sure to uncomment the appropriate database section (either sqlite or PostgreSQL).

  5. Migrate changes.

     ./manage.py migrate
    
  6. Load the fixtures to prepopulate some data. If you don't want some of the provided data, adjust the file glob accordingly.

     ./manage.py loaddata main/fixtures/*.json
     ./manage.py loaddata devel/fixtures/*.json
     ./manage.py loaddata mirrors/fixtures/*.json
     ./manage.py loaddata releng/fixtures/*.json
    
  7. Use the following commands to start a service instance

     ./manage.py runserver
    
  8. To optionally populate the database with real data:

     wget http://mirrors.kernel.org/archlinux/core/os/x86_64/core.db.tar.gz
     ./manage.py reporead x86_64 core.db.tar.gz
     # Package file listing
     wget http://mirrors.kernel.org/archlinux/core/os/x86_64/core.files.tar.gz
     ./manage.py reporead --filesonly x86_64 core.files.tar.gz
    

Alter architecture and repo to get x86_64 and packages from other repos if needed.

  1. Database Updates for Added/Removed packages

     sqlite3 archweb.db < packages/sql/update.sqlite3.sql
    

For PostgreSQL use packages/sql/update.postgresql_psycopg2.sql

Testing SMTP server

To be able to create an account on your test environment an SMTP server is required. A simple debugging SMTP server can be setup using Python.

    python -m smtpd -n -c DebuggingServer localhost:1025

In local_settings.py add entries to set EMAIL_HOST to 'localhost' and EMAIL_PORT to 1025.

Running tests and coverage

To the unittests execute the following commands:

    ./manage.py collectstatic --noinput
    ./manage.py test

Running coverage:

    pip install coverage
    coverage run --omit='env*' --source='.' manage.py test
    coverage report

Django Debug toolbar

To use the Django Debug toolbar install django-debug-toolbar and in local_settings.py set DEBUG_TOOLBAR to True.

Production Installation

Arch Linux has an Ansible role for Archweb in their infrastructure repo.

vim: set syntax=markdown et: