Testing
Go to file
Jelle van der Waa 815e2d0438 Upgrade to django 1.11.11
Update our dependencies as well to the latest stable version.

Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
2018-04-08 12:51:19 +02:00
devel devel: tests visitting reports pages 2018-03-26 22:48:24 +02:00
main main: Add more tests for donor_import 2018-03-25 17:04:55 +02:00
mirrors mirrors: Add tests for mirror detail urls 2018-03-26 21:20:25 +02:00
news tests: add tests for sitemaps 2017-06-11 20:54:21 +02:00
packages Misc fixes (#84) 2018-02-18 04:33:52 -05:00
public public.views: remove unused import/variable 2017-07-11 22:01:58 +02:00
releng Re-add missing release details view 2018-03-13 20:59:53 +01: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 FS#51458: Add HELLOTUX to the support section (#89) 2018-03-23 12:17:22 -04:00
todolists todolists: Add test for overview and detail page 2018-03-25 19:18:46 +02:00
visualize visualize: add tests 2017-06-11 18:43:14 +02: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 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 Bump requirements (#90) 2018-03-23 19:15:12 -04:00
requirements.txt Upgrade to django 1.11.11 2018-04-08 12:51:19 +02:00
settings.py Misc fixes (#84) 2018-02-18 04:33:52 -05: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: