コード例 #1
0
def test_filter_schema_nested():
    filter = CompoundFilter(
        LogicalOperator.AND,
        [
            CompoundFilter(LogicalOperator.AND,
                           [PROJECT_ID_FILTER, TAG_FILTER]),
            CompoundFilter(LogicalOperator.OR,
                           [TAG_FILTER, PROJECT_ID_FILTER]),
        ],
    )
    data = FilterSchema().dump(filter)
    assert data == {
        "operator":
        "and",
        "conditions": [
            {
                "operator": "and",
                "conditions": [PROJECT_ID_FILTER_BODY, TAG_FILTER_BODY],
            },
            {
                "operator": "or",
                "conditions": [TAG_FILTER_BODY, PROJECT_ID_FILTER_BODY],
            },
        ],
    }
コード例 #2
0
def test_filter_schema_compound(operator, expected_operator):
    filter = CompoundFilter(operator, [PROJECT_ID_FILTER, TAG_FILTER])
    data = FilterSchema().dump(filter)
    assert data == {
        "operator": expected_operator,
        "conditions": [PROJECT_ID_FILTER_BODY, TAG_FILTER_BODY],
    }
コード例 #3
0
def test_filter_schema_tag(operator, value, expected_operator, expected_value):
    filter = TagFilter("tag-key", operator, value)
    data = FilterSchema().dump(filter)
    assert data == {
        "by": "tag",
        "key": "tag-key",
        "operator": expected_operator,
        "value": expected_value,
    }
コード例 #4
0
def test_filter_schema_deleted_at(operator, value, expected_operator,
                                  expected_value):
    filter = DeletedAtFilter(operator, value)
    data = FilterSchema().dump(filter)
    assert data == {
        "by": "deletedAt",
        "operator": expected_operator,
        "value": expected_value,
    }
コード例 #5
0
def test_filter_schema_run_id(operator, value, expected_operator,
                              expected_value):
    filter = RunIdFilter(operator, value)
    data = FilterSchema().dump(filter)
    assert data == {
        "by": "runId",
        "operator": expected_operator,
        "value": expected_value,
    }
コード例 #6
0
ファイル: test_schemas.py プロジェクト: jkeelan/faculty
def test_filter_schema_run_status(operator, value, expected_operator,
                                  expected_value):
    filter = RunStatusFilter(operator, value)
    data = FilterSchema().dump(filter)
    assert data == {
        "by": "status",
        "operator": expected_operator,
        "value": expected_value,
    }
コード例 #7
0
def test_filter_schema_metric(operator, value, expected_operator,
                              expected_value):
    filter = MetricFilter("metric-key", operator, value)
    data = FilterSchema().dump(filter)
    assert data == {
        "by": "metric",
        "key": "metric-key",
        "operator": expected_operator,
        "value": expected_value,
    }
コード例 #8
0
def test_filter_schema_param(operator, value, expected_operator,
                             expected_value):
    filter = ParamFilter("param-key", operator, value)
    data = FilterSchema().dump(filter)
    assert data == {
        "by": "param",
        "key": "param-key",
        "operator": expected_operator,
        "value": expected_value,
    }
コード例 #9
0
ファイル: _client.py プロジェクト: qooglewb/faculty
    def restore_runs(self, project_id, run_ids=None):
        """Restore experiment runs.

        Parameters
        ----------
        project_id : uuid.UUID
        run_ids : List[uuid.UUID], optional
            A list of run IDs to restore. If not specified, all runs in the
            project will be restored. If an empty list is passed, no runs
            will be restored.

        Returns
        -------
        RestoreExperimentRunsResponse
            Containing lists of successfully restored and conflicting (already
            active) run IDs.
        """
        endpoint = "/project/{}/run/restore/query".format(project_id)

        if run_ids is None:
            # Restore all runs in project
            payload = {}  # No filter
        elif len(run_ids) == 0:
            return RestoreExperimentRunsResponse(
                restored_run_ids=[], conflicted_run_ids=[]
            )
        else:
            run_id_filters = [
                RunIdFilter(ComparisonOperator.EQUAL_TO, run_id)
                for run_id in run_ids
            ]
            filter = CompoundFilter(LogicalOperator.OR, run_id_filters)
            payload = {"filter": FilterSchema().dump(filter)}

        return self._post(
            endpoint, RestoreExperimentRunsResponseSchema(), json=payload
        )
コード例 #10
0
def test_filter_schema_invalid_operator_with_key(filter_type, value, operator):
    filter = filter_type("key", operator, value)
    with pytest.raises(ValidationError, match="Not a discrete operator"):
        FilterSchema().dump(filter)
コード例 #11
0
def test_filter_schema_invalid_value_with_key(filter_type, value):
    filter = filter_type("key", ComparisonOperator.EQUAL_TO, value)
    with pytest.raises(ValidationError):
        FilterSchema().dump(filter)
コード例 #12
0
ファイル: test_schemas.py プロジェクト: jkeelan/faculty
def test_filter_schema_invalid_value_run_status():
    filter = RunStatusFilter(ComparisonOperator.EQUAL_TO, "invalid")
    with pytest.raises(AttributeError):
        FilterSchema().dump(filter)