From 511f174c8ba704b3cf53ae47fcf56e55c74026f8 Mon Sep 17 00:00:00 2001 From: Kevin Morris Date: Fri, 11 Jun 2021 17:28:08 -0700 Subject: [PATCH] add PackageBlacklist SQLAlchemy ORM model Signed-off-by: Kevin Morris --- aurweb/models/package_blacklist.py | 20 ++++++++++++++++++ test/test_package_blacklist.py | 34 ++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 aurweb/models/package_blacklist.py create mode 100644 test/test_package_blacklist.py diff --git a/aurweb/models/package_blacklist.py b/aurweb/models/package_blacklist.py new file mode 100644 index 00000000..7702c877 --- /dev/null +++ b/aurweb/models/package_blacklist.py @@ -0,0 +1,20 @@ +from sqlalchemy import Column, Integer +from sqlalchemy.exc import IntegrityError + +from aurweb.models.declarative import Base + + +class PackageBlacklist(Base): + __tablename__ = "PackageBlacklist" + + ID = Column(Integer, primary_key=True) + + __mapper_args__ = {"primary_key": [ID]} + + def __init__(self, Name: str = None): + self.Name = Name + if not self.Name: + raise IntegrityError( + statement="Column Name cannot be null.", + orig="PackageBlacklist.Name", + params=("NULL")) diff --git a/test/test_package_blacklist.py b/test/test_package_blacklist.py new file mode 100644 index 00000000..3c64cc21 --- /dev/null +++ b/test/test_package_blacklist.py @@ -0,0 +1,34 @@ +import pytest + +from sqlalchemy.exc import IntegrityError + +from aurweb.db import create, rollback +from aurweb.models.package_base import PackageBase +from aurweb.models.package_blacklist import PackageBlacklist +from aurweb.models.user import User +from aurweb.testing import setup_test_db + +user = pkgbase = None + + +@pytest.fixture(autouse=True) +def setup(): + global user, pkgbase + + setup_test_db("PackageBlacklist", "PackageBases", "Users") + + user = create(User, Username="test", Email="test@example.org", + RealName="Test User", Passwd="testPassword") + pkgbase = create(PackageBase, Name="test-package", Maintainer=user) + + +def test_package_blacklist_creation(): + package_blacklist = create(PackageBlacklist, Name="evil-package") + assert bool(package_blacklist.ID) + assert package_blacklist.Name == "evil-package" + + +def test_package_blacklist_null_name_raises_exception(): + with pytest.raises(IntegrityError): + create(PackageBlacklist) + rollback()