diff --git a/aurweb/models/package_relation.py b/aurweb/models/package_relation.py index 9204af59..1e6c146c 100644 --- a/aurweb/models/package_relation.py +++ b/aurweb/models/package_relation.py @@ -1,4 +1,4 @@ -from sqlalchemy import Column, ForeignKey, Integer +from sqlalchemy import Column, ForeignKey, Integer, String from sqlalchemy.exc import IntegrityError from sqlalchemy.orm import backref, relationship @@ -26,7 +26,9 @@ class PackageRelation(Base): "RelationType", backref=backref("package_relations", lazy="dynamic"), foreign_keys=[RelTypeID]) - __mapper_args__ = {"primary_key": [PackageID, RelTypeID]} + RelName = Column(String(255), unique=True) + + __mapper_args__ = {"primary_key": [PackageID, RelName]} def __init__(self, Package: aurweb.models.package.Package = None, diff --git a/test/test_package_relation.py b/test/test_package_relation.py index 96932f40..766d0017 100644 --- a/test/test_package_relation.py +++ b/test/test_package_relation.py @@ -2,7 +2,7 @@ import pytest from sqlalchemy.exc import IntegrityError, OperationalError -from aurweb.db import create, query +from aurweb.db import commit, create, query from aurweb.models.account_type import AccountType from aurweb.models.package import Package from aurweb.models.package_base import PackageBase @@ -48,9 +48,8 @@ def test_package_relation(): assert pkgrel in package.package_relations provides = query(RelationType, RelationType.Name == "provides").first() - pkgrel = create(PackageRelation, Package=package, - RelationType=provides, - RelName="test-relation") + pkgrel.RelationType = provides + commit() assert pkgrel.RelName == "test-relation" assert pkgrel.Package == package assert pkgrel.RelationType == provides @@ -58,9 +57,8 @@ def test_package_relation(): assert pkgrel in package.package_relations replaces = query(RelationType, RelationType.Name == "replaces").first() - pkgrel = create(PackageRelation, Package=package, - RelationType=replaces, - RelName="test-relation") + pkgrel.RelationType = replaces + commit() assert pkgrel.RelName == "test-relation" assert pkgrel.Package == package assert pkgrel.RelationType == replaces