mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
This rewrites the entire model base as declarative models. This allows us to more easily customize overlay fields in tables and is more common. This effort also brought some DB violations to light which this commit addresses. Signed-off-by: Kevin Morris <kevr@0cost.org>
52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
import pytest
|
|
|
|
from sqlalchemy.exc import IntegrityError
|
|
|
|
from aurweb.db import create, query
|
|
from aurweb.models.account_type import AccountType
|
|
from aurweb.models.license import License
|
|
from aurweb.models.package import Package
|
|
from aurweb.models.package_base import PackageBase
|
|
from aurweb.models.package_license import PackageLicense
|
|
from aurweb.models.user import User
|
|
from aurweb.testing import setup_test_db
|
|
|
|
user = license = pkgbase = package = None
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def setup():
|
|
global user, license, pkgbase, package
|
|
|
|
setup_test_db("Users", "PackageBases", "Packages",
|
|
"Licenses", "PackageLicenses")
|
|
|
|
account_type = query(AccountType,
|
|
AccountType.AccountType == "User").first()
|
|
user = create(User, Username="test", Email="test@example.org",
|
|
RealName="Test User", Passwd="testPassword",
|
|
AccountType=account_type)
|
|
|
|
license = create(License, Name="Test License")
|
|
pkgbase = create(PackageBase, Name="test-package", Maintainer=user)
|
|
package = create(Package, PackageBase=pkgbase, Name=pkgbase.Name)
|
|
|
|
|
|
def test_package_license():
|
|
package_license = create(PackageLicense, Package=package, License=license)
|
|
assert package_license.License == license
|
|
assert package_license.Package == package
|
|
|
|
|
|
def test_package_license_null_package_raises_exception():
|
|
from aurweb.db import session
|
|
with pytest.raises(IntegrityError):
|
|
create(PackageLicense, License=license)
|
|
session.rollback()
|
|
|
|
|
|
def test_package_license_null_license_raises_exception():
|
|
from aurweb.db import session
|
|
with pytest.raises(IntegrityError):
|
|
create(PackageLicense, Package=package)
|
|
session.rollback()
|