Testing
Go to file
jelle van der Waa 73107e0a6a Add donation import management script (#81)
This script imports messages from a Maildir folder and creates new
unique Donors based on the name in the subject. The subject also
contains the amount and the email address, which is not stored by
Archweb.
2018-02-17 12:53:20 -05:00
devel Mirror tests (#78) 2018-01-22 12:41:39 -05:00
main Add donation import management script (#81) 2018-02-17 12:53:20 -05:00
mirrors More code refactoring / tests (#79) 2018-01-29 14:10:10 -05:00
news tests: add tests for sitemaps 2017-06-11 20:54:21 +02:00
packages Add more basic url tests (#76) 2018-01-04 16:23:06 -05:00
public public.views: remove unused import/variable 2017-07-11 22:01:58 +02:00
releng Remove old releng feedback form (#80) 2018-01-29 14:09:55 -05:00
retro retro: create tests for retro pages 2017-05-28 17:28:08 +02:00
sitestatic Remove Konami code functionality (#77) 2018-01-22 12:41:25 -05:00
templates More code refactoring / tests (#79) 2018-01-29 14:10:10 -05:00
todolists More code refactoring / tests (#79) 2018-01-29 14:10:10 -05:00
visualize visualize: add tests 2017-06-11 18:43:14 +02:00
.coveragerc Move coverage configuration to .coverage 2017-06-11 18:43:10 +02:00
.gitattributes Add gitattributes file 2010-09-30 12:51:36 -05:00
.gitignore Update .gitignore 2017-05-24 14:17:05 -04:00
.pylintrc pylintrc: remove comments 2017-08-28 21:31:26 +02:00
.travis.yml travis: cache pip for faster builds 2017-08-28 21:31:26 +02:00
archweb.wsgi remove unused newrelic 2017-04-17 21:56:52 +02:00
AUTHORS Update missing names on AUTHORS 2016-07-31 17:01:43 +00:00
feeds.py Add last modified date to releases 2014-10-26 22:26:25 -05: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 Bump requirements to Django 1.4 and add new manage.py 2012-03-23 19:54:40 -05:00
README Move markdown formatted readme to README.md 2013-11-25 21:54:15 -06:00
README.md README: describe importing the package file listing (#25) 2017-05-29 20:46:40 -04:00
requirements_prod.txt Update requirements_prod 2017-05-18 10:14:33 -04:00
requirements.txt Add donation import management script (#81) 2018-02-17 12:53:20 -05:00
settings.py settings.py: handle flake8 warnings 2017-06-07 22:05:39 +02:00
sitemaps.py Remove old releng feedback form (#80) 2018-01-29 14:09:55 -05:00
urls.py urls.py: make pylint happy 2017-07-11 21:36:52 +02: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

  • python2
  • python2-virtualenv

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:

  • django
  • python2-psycopg2
  • python2-markdown
  • python2-memcached

Testing Installation

  1. Run virtualenv2.

     cd /path/to/archweb && virtualenv2 ./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. Sync the database to create it.

     ./manage.py syncdb
    
  6. Migrate changes.

     ./manage.py migrate
    
  7. 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
    
  8. Use the following commands to start a service instance

     ./manage.py runserver
    
  9. 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
     ./manage.py syncisos
    

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

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.

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

In local_settings.py change the EMAIL_HOST to 'localhost' and the 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

Production Installation

Ask someone who knows, or you are going to be in trouble.

vim: set syntax=markdown et: