def test_delete_project_cascade_project_with_tasks(ebnt: Ebonite): ebnt.get_or_create_task('Project', 'Task') project = ebnt.meta_repo.get_project_by_name('Project') assert ebnt.meta_repo.get_project_by_id(project.id) is not None with pytest.raises(ProjectWithTasksError): ebnt.delete_project(project)
def test_push_model_with_task_and_task_argument_with_different_project(ebnt: Ebonite, model: Model): task = ebnt.get_or_create_task("Project", "Task1") task2 = ebnt.get_or_create_task("Project2", "Task1") model.task = task2 # For test purpose with pytest.raises(ValueError): ebnt.push_model(model, task)
def test_push_model_project_contains_two_tasks(ebnt: Ebonite, model: Model): task1 = ebnt.get_or_create_task("Project", "Task1") ebnt.get_or_create_task("Project", "Task2") pushed_model = ebnt.push_model(model, task1) task = ebnt.meta_repo.get_task_by_id(pushed_model.task_id) project = ebnt.meta_repo.get_project_by_id(task.project_id) task1 = ebnt.get_or_create_task("Project", "Task1") assert project.tasks.get(task.id) == task1
def test_push_model_with_same_name(ebnt: Ebonite, model: Model): task = ebnt.get_or_create_task("Project", "Task1") ebnt.push_model(model, task) model2 = copy.deepcopy(model) with pytest.raises(ExistingModelError): ebnt.push_model(model2, task)
def test_get_model(ebnt: Ebonite): task = ebnt.get_or_create_task("Project", "Task") reg, data = train_model() model = task.create_and_push_model(reg, data, 'mymodel') assert ebnt.get_model(project='Project', task='Task', model_name='mymodel') == model
def test_push_model(ebnt: Ebonite, model: Model): task = ebnt.get_or_create_task("Project", "Task1") model.task_id = task.id # For test purpose pushed_model = ebnt.push_model(model) assert model.name == pushed_model.name assert task.id == pushed_model.task_id
def test_delete_task_ok(ebnt: Ebonite): task = ebnt.get_or_create_task('Project', 'Task') assert ebnt.meta_repo.get_task_by_id(task.id) is not None ebnt.delete_task(task) assert ebnt.meta_repo.get_task_by_id(task.id) is None
def test_push_model_with_same_name(ebnt: Ebonite, model: Model): task = ebnt.get_or_create_task("Project", "Task1") model = ebnt.push_model(model, task) model._id = None with pytest.raises(ExistingModelError): ebnt.push_model(model, task)
def test_get_or_create_task(ebnt: Ebonite): task = ebnt.get_or_create_task("Project", "Task") project = ebnt.meta_repo.get_project_by_name('Project') assert task.name == "Task" assert task.project.name == "Project" assert task.id in project.tasks assert task.has_meta_repo assert task.has_artifact_repo
def test_delete_task_with_models(ebnt: Ebonite, model: Model): task = ebnt.get_or_create_task('Project', 'Task') model = ebnt.push_model(model, task) assert ebnt.meta_repo.get_task_by_id(task.id) is not None assert ebnt.meta_repo.get_model_by_id(model.id) is not None with pytest.raises(TaskWithFKError): ebnt.delete_task(task)
def delete_model_ok(ebnt: Ebonite): task = ebnt.get_or_create_task('Project', 'Task') model = Model(name='Model', task_id=task.id) model = ebnt.meta_repo.create_model(model) assert ebnt.meta_repo.get_task_by_id(task.id) is not None assert ebnt.meta_repo.get_model_by_id(model.id) is not None ebnt.delete_model(model) assert ebnt.meta_repo.get_model_by_id(model.id) is None
def test_delete_project_cascade__ok(ebnt: Ebonite): task = ebnt.get_or_create_task('Project', 'Task') project = ebnt.meta_repo.get_project_by_name('Project') assert ebnt.meta_repo.get_task_by_id(task.id) is not None assert ebnt.meta_repo.get_project_by_id(project.id) is not None ebnt.delete_project(project, cascade=True) assert ebnt.meta_repo.get_project_by_name('Project') is None assert ebnt.meta_repo.get_task_by_id(task.id) is None
def test_push_model_exists(ebnt: Ebonite, model: Model): task = ebnt.get_or_create_task("Project", "Task1") pushed_model = ebnt.push_model(model, task) assert pushed_model.id is not None pushed_model.name = "Model2" pushed_model._id = None pushed_model2 = ebnt.push_model(pushed_model) assert "Model2" == pushed_model2.name
def test_get_model(ebnt: Ebonite, regression_and_data): task = ebnt.get_or_create_task("Project", "Task") reg, data = regression_and_data model = task.create_and_push_model(reg, data, 'mymodel') get_model = ebnt.get_model(project='Project', task='Task', model_name='mymodel') assert get_model == model assert get_model.has_meta_repo assert get_model.has_artifact_repo
def delete_image_ok(ebnt: Ebonite, model: Model): task = ebnt.get_or_create_task('Project', 'Task') model = ebnt.push_model(model, task) image = Image(task_id=task.id, name='Image', source=BuildableMock()) image = ebnt.meta_repo.create_image(image) assert ebnt.meta_repo.get_task_by_id(task.id) is not None assert ebnt.meta_repo.get_model_by_id(model.id) is not None assert ebnt.meta_repo.get_image_by_id(image.id) is not None ebnt.delete_image(image) assert ebnt.meta_repo.get_image_by_id(image.id) is None
def test_delete_task_cascade_ok(ebnt: Ebonite, model: Model, mock_env, image: Image, pipeline: Pipeline): task = ebnt.get_or_create_task('Project', 'Task') model = ebnt.push_model(model, task) image.environment = ebnt.meta_repo.create_environment(mock_env) task.add_pipeline(pipeline) task.add_image(image) task = ebnt.meta_repo.get_task_by_id(task.id).bind_as(task) assert ebnt.meta_repo.get_task_by_id(task.id) is not None assert ebnt.meta_repo.get_model_by_id(model.id) is not None assert ebnt.meta_repo.get_pipeline_by_id(pipeline.id) is not None assert ebnt.meta_repo.get_image_by_id(image.id) is not None ebnt.delete_task(task, cascade=True) assert ebnt.meta_repo.get_task_by_id(task.id) is None assert ebnt.meta_repo.get_model_by_id(model.id) is None assert ebnt.meta_repo.get_pipeline_by_id(pipeline.id) is None assert ebnt.meta_repo.get_image_by_id(image.id) is None
def test_get_or_create_task_exists(ebnt: Ebonite): task = ebnt.get_or_create_task("Project", "Task") task2 = ebnt.get_or_create_task("Project", "Task") assert task == task2
def test_get_or_create_task(ebnt: Ebonite): task = ebnt.get_or_create_task("Project", "Task") project = ebnt.meta_repo.get_project_by_id(task.project_id) # FIXME assert task.name == "Task" assert project.name == "Project"
def test_push_model_task_argument(ebnt: Ebonite, model: Model): task = ebnt.get_or_create_task("Project", "Task1") pushed_model = ebnt.push_model(model, task) assert model.name == pushed_model.name assert task.id == pushed_model.task_id
def test_get_or_create_task(ebnt: Ebonite): task = ebnt.get_or_create_task("Project", "Task") assert task.name == "Task" assert task.project.name == "Project"