예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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
예제 #4
0
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)
예제 #5
0
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
예제 #6
0
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
예제 #7
0
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
예제 #8
0
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)
예제 #9
0
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
예제 #10
0
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)
예제 #11
0
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
예제 #12
0
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
예제 #13
0
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
예제 #14
0
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
예제 #15
0
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
예제 #16
0
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
예제 #17
0
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
예제 #18
0
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"
예제 #19
0
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
예제 #20
0
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"