diff --git a/test/test_package.py b/test/test_package.py index c2afa660..1408a182 100644 --- a/test/test_package.py +++ b/test/test_package.py @@ -4,7 +4,7 @@ from sqlalchemy import and_ from sqlalchemy.exc import IntegrityError from aurweb import db -from aurweb.models.account_type import AccountType +from aurweb.models.account_type import USER_ID from aurweb.models.package import Package from aurweb.models.package_base import PackageBase from aurweb.models.user import User @@ -14,28 +14,30 @@ user = pkgbase = package = None @pytest.fixture(autouse=True) def setup(db_test): - global user, pkgbase, package + 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 - pkgbase = db.create(PackageBase, - Name="beautiful-package", + +@pytest.fixture +def package(user: User) -> Package: + with db.begin(): + pkgbase = db.create(PackageBase, Name="beautiful-package", Maintainer=user) - package = db.create(Package, - PackageBase=pkgbase, - Name=pkgbase.Name, + package = db.create(Package, PackageBase=pkgbase, Name=pkgbase.Name, Description="Test description.", URL="https://test.package") + yield package -def test_package(): - assert pkgbase == package.PackageBase +def test_package(package: Package): assert package.Name == "beautiful-package" assert package.Description == "Test description." assert package.Version == str() # Default version. @@ -46,27 +48,21 @@ def test_package(): package.Version = "1.2.3" # Make sure it got updated in the database. - record = db.query(Package, - and_(Package.ID == package.ID, - Package.Version == "1.2.3")).first() + record = db.query(Package).filter( + and_(Package.ID == package.ID, + Package.Version == "1.2.3") + ).first() assert record is not None -def test_package_null_pkgbase_raises_exception(): +def test_package_null_pkgbase_raises(): with pytest.raises(IntegrityError): - with db.begin(): - db.create(Package, - Name="some-package", - Description="Some description.", - URL="https://some.package") - db.rollback() + Package(Name="some-package", Description="Some description.", + URL="https://some.package") -def test_package_null_name_raises_exception(): +def test_package_null_name_raises(package: Package): + pkgbase = package.PackageBase with pytest.raises(IntegrityError): - with db.begin(): - db.create(Package, - PackageBase=pkgbase, - Description="Some description.", - URL="https://some.package") - db.rollback() + Package(PackageBase=pkgbase, Description="Some description.", + URL="https://some.package")