diff --git a/test/test_package_base.py b/test/test_package_base.py index 8e4b2edf..5be7e40b 100644 --- a/test/test_package_base.py +++ b/test/test_package_base.py @@ -2,35 +2,36 @@ import pytest from sqlalchemy.exc import IntegrityError -import aurweb.config - from aurweb import db -from aurweb.models.account_type import AccountType +from aurweb.models.account_type import USER_ID from aurweb.models.package_base import PackageBase from aurweb.models.user import User -user = None - @pytest.fixture(autouse=True) def setup(db_test): - global user + return - account_type = db.query(AccountType, - AccountType.AccountType == "User").first() + +@pytest.fixture +def user() -> User: with db.begin(): user = db.create(User, Username="test", Email="test@example.org", RealName="Test User", Passwd="testPassword", - AccountType=account_type) + AccountTypeID=USER_ID) + yield user -def test_package_base(): +@pytest.fixture +def pkgbase(user: User) -> PackageBase: with db.begin(): - pkgbase = db.create(PackageBase, - Name="beautiful-package", + pkgbase = db.create(PackageBase, Name="beautiful-package", Maintainer=user) - assert pkgbase in user.maintained_bases + yield pkgbase + +def test_package_base(user: User, pkgbase: PackageBase): + assert pkgbase in user.maintained_bases assert not pkgbase.OutOfDateTS assert pkgbase.SubmittedTS > 0 assert pkgbase.ModifiedTS > 0 @@ -42,33 +43,19 @@ def test_package_base(): assert pkgbase.Popularity == 0.0 -def test_package_base_ci(): +def test_package_base_ci(user: User, pkgbase: PackageBase): """ Test case insensitivity of the database table. """ - if aurweb.config.get("database", "backend") == "sqlite": - return None # SQLite doesn't seem handle this. - - with db.begin(): - pkgbase = db.create(PackageBase, - Name="beautiful-package", - Maintainer=user) - assert bool(pkgbase.ID) - with pytest.raises(IntegrityError): with db.begin(): - db.create(PackageBase, - Name="Beautiful-Package", - Maintainer=user) + db.create(PackageBase, Name=pkgbase.Name.upper(), Maintainer=user) db.rollback() -def test_package_base_relationships(): +def test_package_base_relationships(user: User, pkgbase: PackageBase): with db.begin(): - pkgbase = db.create(PackageBase, - Name="beautiful-package", - Flagger=user, - Maintainer=user, - Submitter=user, - Packager=user) + pkgbase.Flagger = user + pkgbase.Submitter = user + pkgbase.Packager = user assert pkgbase in user.flagged_bases assert pkgbase in user.maintained_bases assert pkgbase in user.submitted_bases @@ -77,6 +64,4 @@ def test_package_base_relationships(): def test_package_base_null_name_raises_exception(): with pytest.raises(IntegrityError): - with db.begin(): - db.create(PackageBase) - db.rollback() + PackageBase()