Skip to content
  • Kevin Morris's avatar
    Sanitize and modernize pytests · 38dc2bb9
    Kevin Morris authored
    
    
    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's avatarKevin Morris <kevr@0cost.org>
    38dc2bb9