1. 06 Jun, 2021 3 commits
    • Kevin Morris's avatar
      add case [in]sensitivity tests + add OfficialProvider model · 1874e821
      Kevin Morris authored
      
      
      `ci` in this context means "Case Insensitive".
      `cs` in this context means "Case Sensitive".
      
      New models created:
          - OfficialProvider
            This was required to write a test for checking that
            OfficialProviders behaves as we expect, which was the starter
            for the original aurblup bug.
      
      New tests created:
          - test_official_provider
      
      Modified tests:
          - test_package_base: add ci test
          - test_package: add ci test
          - test_session: add cs test
          - test_ssh_pub_key: add cs test
      Signed-off-by: Kevin Morris's avatarKevin Morris <kevr@0cost.org>
      1874e821
    • 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
    • Kevin Morris's avatar
      add SSHPubKey ORM model · 670f711b
      Kevin Morris authored
      
      
      Includes `aurweb.models.ssh_pub_key.get_fingerprint(pubkey)` helper.
      Signed-off-by: Kevin Morris's avatarKevin Morris <kevr@0cost.org>
      670f711b