mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Map ToolDependency declaratively
This commit is contained in:
@@ -9,6 +9,7 @@ from sqlalchemy import (
|
||||
ForeignKey,
|
||||
Integer,
|
||||
Table,
|
||||
TEXT,
|
||||
)
|
||||
from sqlalchemy.orm import (
|
||||
registry,
|
||||
@@ -16,6 +17,9 @@ from sqlalchemy.orm import (
|
||||
)
|
||||
from sqlalchemy.orm.decl_api import DeclarativeMeta
|
||||
|
||||
from galaxy.model.custom_types import (
|
||||
TrimmedString
|
||||
)
|
||||
from galaxy.model.orm.now import now
|
||||
from galaxy.util import asbool
|
||||
from galaxy.util.bunch import Bunch
|
||||
@@ -537,7 +541,19 @@ class RepositoryDependency(Base, _HasTable):
|
||||
self.tool_shed_repository_id = tool_shed_repository_id
|
||||
|
||||
|
||||
class ToolDependency(_HasTable):
|
||||
class ToolDependency(Base, _HasTable):
|
||||
__tablename__ = 'tool_dependency'
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
create_time = Column(DateTime, default=now)
|
||||
update_time = Column(DateTime, default=now, onupdate=now)
|
||||
tool_shed_repository_id = Column(Integer, ForeignKey('tool_shed_repository.id'), index=True, nullable=False)
|
||||
name = Column(TrimmedString(255))
|
||||
version = Column(TEXT)
|
||||
type = Column(TrimmedString(40))
|
||||
status = Column(TrimmedString(255), nullable=False)
|
||||
error_message = Column(TEXT)
|
||||
|
||||
# converting this one to Enum breaks the tool shed tests,
|
||||
# don't know why though -John
|
||||
installation_status = Bunch(NEVER_INSTALLED='Never installed',
|
||||
|
||||
@@ -42,17 +42,6 @@ install_model.ToolShedRepository.table = Table("tool_shed_repository", metadata,
|
||||
Column("status", TrimmedString(255)),
|
||||
Column("error_message", TEXT))
|
||||
|
||||
install_model.ToolDependency.table = Table("tool_dependency", metadata,
|
||||
Column("id", Integer, primary_key=True),
|
||||
Column("create_time", DateTime, default=now),
|
||||
Column("update_time", DateTime, default=now, onupdate=now),
|
||||
Column("tool_shed_repository_id", Integer, ForeignKey("tool_shed_repository.id"), index=True, nullable=False),
|
||||
Column("name", TrimmedString(255)),
|
||||
Column("version", TEXT),
|
||||
Column("type", TrimmedString(40)),
|
||||
Column("status", TrimmedString(255), nullable=False),
|
||||
Column("error_message", TEXT))
|
||||
|
||||
install_model.ToolVersion.table = Table("tool_version", metadata,
|
||||
Column("id", Integer, primary_key=True),
|
||||
Column("create_time", DateTime, default=now),
|
||||
@@ -70,14 +59,12 @@ mapper_registry.map_imperatively(install_model.ToolShedRepository, install_model
|
||||
primaryjoin=(install_model.ToolShedRepository.table.c.id == install_model.ToolVersion.table.c.tool_shed_repository_id),
|
||||
backref='tool_shed_repository'),
|
||||
tool_dependencies=relation(install_model.ToolDependency,
|
||||
primaryjoin=(install_model.ToolShedRepository.table.c.id == install_model.ToolDependency.table.c.tool_shed_repository_id),
|
||||
order_by=install_model.ToolDependency.table.c.name,
|
||||
primaryjoin=(install_model.ToolShedRepository.table.c.id == install_model.ToolDependency.tool_shed_repository_id),
|
||||
order_by=install_model.ToolDependency.name,
|
||||
backref='tool_shed_repository'),
|
||||
required_repositories=relation(install_model.RepositoryRepositoryDependencyAssociation,
|
||||
primaryjoin=(install_model.ToolShedRepository.table.c.id == install_model.RepositoryRepositoryDependencyAssociation.tool_shed_repository_id))))
|
||||
|
||||
mapper_registry.map_imperatively(install_model.ToolDependency, install_model.ToolDependency.table)
|
||||
|
||||
mapper_registry.map_imperatively(install_model.ToolVersion, install_model.ToolVersion.table,
|
||||
properties=dict(
|
||||
parent_tool_association=relation(install_model.ToolVersionAssociation,
|
||||
|
||||
@@ -173,8 +173,7 @@ class TestRepositoryDependency(BaseTest):
|
||||
class TestToolDependency(BaseTest):
|
||||
|
||||
def test_table(self, cls_):
|
||||
assert cls_.table.name == 'tool_dependency'
|
||||
# assert cls_.__tablename__ == 'tool_dependency' # TODO
|
||||
assert cls_.__tablename__ == 'tool_dependency'
|
||||
|
||||
def test_columns(self, session, cls_, repository):
|
||||
create_time = datetime.now()
|
||||
|
||||
Reference in New Issue
Block a user