Testing
Go to file
Jelle van der Waa a1b14a4173 Implement cleaning up older log entries in mirrorcheck
MirrorLog entries are not cleaned up by default and will clog the
database. The django settings now defines a retention period in days for
how long to keep mirror logs, on every mirrorcheck run older logs will
be removed from the database.
2018-07-22 22:03:06 +02:00
devel devel: reporead remove old flagrequests 2018-07-13 22:08:37 +02:00
main models.py: correct a typo 2018-06-09 11:44:39 +08:00
mirrors Implement cleaning up older log entries in mirrorcheck 2018-07-22 22:03:06 +02:00
news treewide: context must be a dict rather than Context 2018-04-08 12:51:19 +02:00
packages Widen the search results 2018-07-13 22:20:53 +02:00
public public/views: pgp_key is not a foreign relation, so cannot be select_related 2018-04-08 12:51:19 +02:00
releng test: use response.json() 2018-06-17 22:02:16 +02:00
retro retro: create tests for retro pages 2017-05-28 17:28:08 +02:00
sitestatic dev-todo-lists: highlight table rows on mouse hover 2018-06-08 10:50:37 +02:00
templates Remove extra newline after the end span tag and before the li tag 2018-07-19 21:29:56 +02:00
todolists todolists: Add json endpoint for todo detail view 2018-07-06 22:08:26 +02:00
visualize Update urls.py to non relative imports 2018-04-08 12:51:19 +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 Add coverage to gitignore 2018-05-11 21:29:03 +02:00
.pylintrc pylint: Really fix the build 2018-05-20 16:55:06 +02:00
.pyup.yml create pyup.io config file 2018-05-31 20:35:29 +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 Add myself as maintainer 2018-06-08 19:02:11 +02:00
feeds.py feeds.py: Change last_modified to SQLAlchemy 2018-06-08 19:52:45 +02: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 Add note about applying database updates 2018-06-08 20:57:40 +02:00
requirements_prod.txt Bump requirements (#90) 2018-03-23 19:15:12 -04:00
requirements.txt requirements: Update django to 1.11.13 2018-05-03 20:49:44 +02:00
settings.py Implement cleaning up older log entries in mirrorcheck 2018-07-22 22:03:06 +02:00
sitemaps.py Remove calls to order_by() without parameters 2018-05-07 21:47:42 +02:00
urls.py feeds: Add package removal / deletion feed 2018-06-08 19:52:45 +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. 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.

    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: