test_package_base.py 2.11 KB
Newer Older
1
2
3
4
import pytest

from sqlalchemy.exc import IntegrityError

5
6
import aurweb.config

7
8
9
from aurweb.db import create, query
from aurweb.models.account_type import AccountType
from aurweb.models.package_base import PackageBase
Kevin Morris's avatar
Kevin Morris committed
10
from aurweb.models.user import User
11
12
13
14
15
16
17
18
19
20
21
22
23
from aurweb.testing import setup_test_db

user = None


@pytest.fixture(autouse=True)
def setup():
    global user

    setup_test_db("Users", "PackageBases")

    account_type = query(AccountType,
                         AccountType.AccountType == "User").first()
Kevin Morris's avatar
Kevin Morris committed
24
25
26
    user = create(User, Username="test", Email="test@example.org",
                  RealName="Test User", Passwd="testPassword",
                  AccountType=account_type)
27
28
29
30
31
32
33
34
35
36
37
38
39


def test_package_base():
    pkgbase = create(PackageBase,
                     Name="beautiful-package",
                     Maintainer=user)
    assert pkgbase in user.maintained_bases

    assert not pkgbase.OutOfDateTS
    assert pkgbase.SubmittedTS > 0
    assert pkgbase.ModifiedTS > 0


40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
def test_package_base_ci():
    """ Test case insensitivity of the database table. """
    if aurweb.config.get("database", "backend") == "sqlite":
        return None  # SQLite doesn't seem handle this.

    from aurweb.db import session

    pkgbase = create(PackageBase,
                     Name="beautiful-package",
                     Maintainer=user)
    assert bool(pkgbase.ID)

    with pytest.raises(IntegrityError):
        create(PackageBase,
               Name="Beautiful-Package",
               Maintainer=user)
    session.rollback()


59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
def test_package_base_relationships():
    pkgbase = create(PackageBase,
                     Name="beautiful-package",
                     Flagger=user,
                     Maintainer=user,
                     Submitter=user,
                     Packager=user)
    assert pkgbase in user.flagged_bases
    assert pkgbase in user.maintained_bases
    assert pkgbase in user.submitted_bases
    assert pkgbase in user.package_bases


def test_package_base_null_name_raises_exception():
    from aurweb.db import session

    with pytest.raises(IntegrityError):
        create(PackageBase)
    session.rollback()