PackageDependency: fix primary key relationships

Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
Kevin Morris 2021-07-18 01:56:24 -07:00
parent ec38d2f5a0
commit b4e46450b5
2 changed files with 13 additions and 14 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.exc import IntegrityError
from sqlalchemy.orm import backref, relationship from sqlalchemy.orm import backref, relationship
@ -16,7 +16,7 @@ class PackageDependency(Base):
nullable=False) nullable=False)
Package = relationship( Package = relationship(
"Package", backref=backref("package_dependencies", lazy="dynamic"), "Package", backref=backref("package_dependencies", lazy="dynamic"),
foreign_keys=[PackageID], lazy="select") foreign_keys=[PackageID])
DepTypeID = Column( DepTypeID = Column(
Integer, ForeignKey("DependencyTypes.ID", ondelete="NO ACTION"), Integer, ForeignKey("DependencyTypes.ID", ondelete="NO ACTION"),
@ -24,9 +24,11 @@ class PackageDependency(Base):
DependencyType = relationship( DependencyType = relationship(
"DependencyType", "DependencyType",
backref=backref("package_dependencies", lazy="dynamic"), backref=backref("package_dependencies", lazy="dynamic"),
foreign_keys=[DepTypeID], lazy="select") foreign_keys=[DepTypeID])
__mapper_args__ = {"primary_key": [PackageID, DepTypeID]} DepName = Column(String(255), nullable=False)
__mapper_args__ = {"primary_key": [PackageID, DepName]}
def __init__(self, def __init__(self,
Package: aurweb.models.package.Package = None, Package: aurweb.models.package.Package = None,

View file

@ -2,7 +2,7 @@ import pytest
from sqlalchemy.exc import IntegrityError from sqlalchemy.exc import IntegrityError
from aurweb.db import create, query from aurweb.db import commit, create, query
from aurweb.models.account_type import AccountType from aurweb.models.account_type import AccountType
from aurweb.models.dependency_type import DependencyType from aurweb.models.dependency_type import DependencyType
from aurweb.models.package import Package from aurweb.models.package import Package
@ -49,9 +49,8 @@ def test_package_dependencies():
makedepends = query(DependencyType, makedepends = query(DependencyType,
DependencyType.Name == "makedepends").first() DependencyType.Name == "makedepends").first()
pkgdep = create(PackageDependency, Package=package, pkgdep.DependencyType = makedepends
DependencyType=makedepends, commit()
DepName="test-dep")
assert pkgdep.DepName == "test-dep" assert pkgdep.DepName == "test-dep"
assert pkgdep.Package == package assert pkgdep.Package == package
assert pkgdep.DependencyType == makedepends assert pkgdep.DependencyType == makedepends
@ -60,9 +59,8 @@ def test_package_dependencies():
checkdepends = query(DependencyType, checkdepends = query(DependencyType,
DependencyType.Name == "checkdepends").first() DependencyType.Name == "checkdepends").first()
pkgdep = create(PackageDependency, Package=package, pkgdep.DependencyType = checkdepends
DependencyType=checkdepends, commit()
DepName="test-dep")
assert pkgdep.DepName == "test-dep" assert pkgdep.DepName == "test-dep"
assert pkgdep.Package == package assert pkgdep.Package == package
assert pkgdep.DependencyType == checkdepends assert pkgdep.DependencyType == checkdepends
@ -71,9 +69,8 @@ def test_package_dependencies():
optdepends = query(DependencyType, optdepends = query(DependencyType,
DependencyType.Name == "optdepends").first() DependencyType.Name == "optdepends").first()
pkgdep = create(PackageDependency, Package=package, pkgdep.DependencyType = optdepends
DependencyType=optdepends, commit()
DepName="test-dep")
assert pkgdep.DepName == "test-dep" assert pkgdep.DepName == "test-dep"
assert pkgdep.Package == package assert pkgdep.Package == package
assert pkgdep.DependencyType == optdepends assert pkgdep.DependencyType == optdepends