Hosting platform for the Arch User Repository (AUR), a collection of packaging scripts created by the Arch Linux community
Find a file
Kevin Morris 38dc2bb99d Sanitize and modernize pytests
Some of these tests were written before some of our convenient
tooling existed. Additionally, some of the tests were not
cooperating with PEP-8 guidelines or isorted.

This commit does the following:
    - Replaces all calls to make_(user|session) with
      aurweb.db.create(Model, ...).
    - Replace calls to session.add(...) + session.commit() with
      aurweb.db.create.
    - Removes the majority of calls to (session|aurweb.db).delete(...).
    - Replaces session.query calls with aurweb.db.query.
    - Initializes all mutable globals in pytest fixture setup().
    - Makes mutable global declarations more concise:
      `var1, var2 = None, None` -> `var1 = var2 = None`
    - Defines a warning exclusion for test/test_ssh_pub_key.py.
    - Removes the aurweb.testing.models module.
    - Removes some useless pytest.fixture yielding.

As of this commit, developers should use the following guidelines
when writing tests:
    - Always use aurweb.db.(create|delete|query) for database
      operations, where possible.
    - Always define mutable globals in the style: `var1 = var2 = None`.
    - `yield` the most dependent model in pytest setup fixture **iff**
      you must delete records after test runs to maintain database
      integrity. Example: test/test_account_type.py.

This all makes the test code look and behave much cleaner.
Previously, aurweb.testing.setup_test_db was buggy and leaving
objects around in SQLAlchemy's IdentityMap.

Signed-off-by: Kevin Morris <kevr@0cost.org>
2021-06-05 20:11:17 -07:00
.tx Rename translation resources from aur to aurweb 2018-07-07 16:05:12 +02:00
aurweb Sanitize and modernize pytests 2021-06-05 20:11:17 -07:00
conf add passreset routes 2021-06-05 20:11:17 -07:00
doc Update wiki links to the new short URL 2021-05-09 18:06:32 -04:00
migrations alembic: restore logging, fix pytest conflicts 2021-06-05 19:52:56 -07:00
po Translation updates from Transifex 2020-03-27 08:31:46 -04:00
schema gendummydata.py: optimize iteration for big numbers of pkgs 2021-02-20 11:25:21 -05:00
templates add account (view) route 2021-06-05 20:11:17 -07:00
test Sanitize and modernize pytests 2021-06-05 20:11:17 -07:00
upgrading Add new upgrade instructions 2020-03-27 08:49:34 -04:00
util add passreset routes 2021-06-05 20:11:17 -07:00
web Use the clipboard API for copy paste 2021-06-05 19:50:51 -07:00
.coveragerc Support SQLAlchemy 1.4 URL.create recommendation 2021-06-05 19:52:56 -07:00
.editorconfig add https://EditorConfig.org setup to ensure consistent style 2021-04-28 18:06:06 -04:00
.gitignore Add support for configuring database with port instead of socket 2021-06-05 20:11:17 -07:00
.gitlab-ci.yml add python-lxml to dependencies 2021-06-05 20:11:17 -07:00
.mailmap Update maintainer email address 2015-04-11 12:48:15 +02:00
.pre-commit-config.yaml pre-commit: add initial config 2021-02-20 11:24:30 -05:00
alembic.ini Set up Alembic for database migrations 2020-02-27 16:44:36 +01:00
AUTHORS AUTHORS: Add date ranges to current maintainers 2015-09-29 20:51:03 +02:00
CONTRIBUTING.md update documentation for FastAPI tests and deps. 2021-06-05 19:49:19 -07:00
COPYING added GPL2 as our license 2007-09-09 01:31:34 +00:00
Dockerfile add python-lxml to dependencies 2021-06-05 20:11:17 -07:00
INSTALL add python-lxml to dependencies 2021-06-05 20:11:17 -07:00
README.md update documentation for FastAPI tests and deps. 2021-06-05 19:49:19 -07:00
setup.cfg Sanitize and modernize pytests 2021-06-05 20:11:17 -07:00
setup.py Refactor code to comply with flake8 and isort 2021-02-20 11:24:30 -05:00
TESTING doc: simplify database setup instructions in TESTING 2021-02-20 11:25:21 -05:00

aurweb

aurweb is a hosting platform for the Arch User Repository (AUR), a collection of packaging scripts that are created and submitted by the Arch Linux community. The scripts contained in the repository can be built using makepkg and installed using the Arch Linux package manager pacman.

The aurweb project includes

  • A web interface to search for packaging scripts and display package details.
  • An SSH/Git interface to submit and update packages and package meta data.
  • Community features such as comments, votes, package flagging and requests.
  • Editing/deletion of packages and accounts by Trusted Users and Developers.
  • Area for Trusted Users to post AUR-related proposals and vote on them.

Directory Layout

  • aurweb: aurweb Python modules, Git interface and maintenance scripts
  • conf: configuration and configuration templates
  • static: static resource files
  • templates: jinja2 template collection
  • doc: project documentation
  • po: translation files for strings in the aurweb interface
  • schema: schema for the SQL database
  • test: test suite and test cases
  • upgrading: instructions for upgrading setups from one release to another
  • web: PHP-based web interface for the AUR

Translations

Translations are welcome via our Transifex project at https://www.transifex.com/lfleischer/aurweb; see doc/i18n.txt for details.

Transifex

Testing

See test/README.md for details on dependencies and testing.