PackageRelation: fix primary key relationships

Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
Kevin Morris 2021-07-18 01:57:00 -07:00
parent b4e46450b5
commit 13b4dbf541
2 changed files with 9 additions and 9 deletions

View file

@ -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,

View file

@ -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