from schrodinger.application.livedesign import login
from schrodinger.application.livedesign.live_report_widget import LiveReportType
PROJ_IDS = [login.GLOBAL_PROJECT_ID, '1', '2']
DEFAULT_PROJ_ID = PROJ_IDS[1]
[docs]class MockNameAndID:
[docs] def __init__(self, name=None, id_=None):
super().__init__()
self._name = name
self.id = id_
@property
def name(self):
return self._name
[docs]class MockLDProject(MockNameAndID):
[docs] def __init__(self, name=None, id_=DEFAULT_PROJ_ID):
super().__init__(name, id_)
[docs]class MockFolder(MockNameAndID):
[docs] def __init__(self, name=None, id_=None, project_id=DEFAULT_PROJ_ID):
super().__init__(name, id_)
self.project_id = project_id
[docs]class MockLiveReport:
[docs] def __init__(self,
title=None,
template=None,
owner=None,
tags=None,
id_=None,
project_id=DEFAULT_PROJ_ID,
lr_type=LiveReportType.COMPOUND):
super().__init__()
self.title = title
self.template = template
self.owner = owner
if tags is None:
tags = []
self.tags = tags
self.id = id_
self.project_id = project_id
self.type = lr_type
[docs]class MockLDModels:
"""
Mock the `ld_models` module; treat classes as methods that return new mock
instances of the corresponding class.
"""
[docs] def LiveReport(self,
title=None,
owner=None,
tags=None,
id_=None,
project_id=DEFAULT_PROJ_ID):
return MockLiveReport(title=title,
owner=owner,
tags=tags,
id_=id_,
project_id=project_id)
[docs]class Column:
"""
A class meant to mock the relevant attributes of
`ldclient.models.Column`.
"""
[docs] def __init__(self,
id=None,
name=None,
column_type=None,
value_type=None,
log_scale=None,
project_ids=None,
folder_name=None):
self.id = id
self.name = name
self.column_type = column_type
self.value_type = value_type
self.log_scale = log_scale
self.project_ids = project_ids
self.folder_name = folder_name
[docs]class Model(BaseModel):
"""
A class to mock the relevant attributes of `models.Model`.
"""
[docs] def __init__(self,
name,
archived,
published,
user,
folder,
returns,
project_ids,
template_vars,
description,
parent=None,
commands=None,
batch_size=None,
command_type=None,
command_queue=None,
created_at=None,
updated_at=None,
id=None):
self.id = id
self.parent = parent
self.name = name
self.archived = archived
self.published = published
self.user = user
self.created_at = created_at
self.updated_at = updated_at
self.folder = folder
self.returns = returns
self.template_vars = template_vars
self.batch_size = batch_size
self.description = description
self.command_type = command_type
self.command_queue = command_queue
self.commands = [] if not commands else commands
self.project_ids = project_ids or [login.GLOBAL_PROJECT_ID]
[docs]class ModelRecursive(BaseModel):
"""
A class to mock the relevant attributes of `models.ModelRecursive`.
"""
[docs] def __init__(self, tag, value=None):
self.tag = tag
self.value = value
[docs]class ModelTemplateVar:
"""
Mock of `models.ModelTemplateVar`, "a binding of a variable in a command".
"""
[docs] def __init__(self, tag, type, name, data=None, id=None):
self.id = id
self.tag = tag
self.type = type
self.name = name
self.data = data
[docs]class AsyncServiceTaskFailedError(Exception):
pass