コード例 #1
0
def test_filter(read_database: ReadDatabase):
    res = MagicMock()
    read_database.fetch_models = f = MagicMock(return_value=res)
    filter = FilterOperator("a", "=", "a")

    models = read_database.filter("c", filter, [])

    f.assert_called()
    assert models == res
コード例 #2
0
def test_exists_false(reader: ReaderService):
    reader.count = count = MagicMock(return_value={"count": 0, "position": 0})

    filter_operator = FilterOperator("field", "=", "data")
    request = AggregateRequest("collection", filter_operator)

    assert reader.exists(request) == {"exists": False, "position": 0}

    count.assert_called_with(request)
コード例 #3
0
def test_filter(reader: ReaderService, read_db: SqlReadDatabaseBackendService):
    result = MagicMock()
    read_db.filter = filter = MagicMock(return_value=result)

    filter_operator = FilterOperator("field", "=", "data")
    request = FilterRequest("collection", filter_operator, ["field"])

    assert reader.filter(request) == result

    read_db.get_context.assert_called()
    filter.assert_called_with("collection", filter_operator, ["field"])
コード例 #4
0
def test_aggregate(read_database: ReadDatabase, connection: ConnectionHandler):
    res = MagicMock()
    res.copy = lambda: res
    connection.query = q = MagicMock(return_value=[res])
    filter = FilterOperator("a", "=", "a")
    param = CountFilterQueryFieldsParameters()

    models = read_database.aggregate("c", filter, param)

    q.assert_called()
    assert models == res
コード例 #5
0
def test_max(reader: ReaderService, read_db: SqlReadDatabaseBackendService):
    result = MagicMock()
    read_db.aggregate = aggregate = MagicMock(return_value=result)

    filter_operator = FilterOperator("field", "=", "data")
    request = MinMaxRequest("collection", filter_operator, "field")
    params = AggregateFilterQueryFieldsParameters("max", "field", "int")

    assert reader.max(request) == result

    read_db.get_context.assert_called()
    aggregate.assert_called_with("collection", filter_operator, params)
コード例 #6
0
def test_locked_collectionfield_with_filter(
    write_handler, connection_handler, valid_metadata
):
    locked_collectionfield = MagicMock()
    connection_handler.collectionfield = MagicMock(return_value=locked_collectionfield)
    valid_metadata["locked_fields"]["a/f"] = {
        "position": 42,
        "filter": FilterOperator("field", "=", "value"),
    }

    with pytest.raises(ModelLocked) as e:
        write_handler.write(valid_metadata)

    assert e.value.key == locked_collectionfield
コード例 #7
0
def test_build_filter_str_filter_operator(query_helper: SqlQueryHelper):
    f = query_helper.build_filter_str
    query_helper.build_filter_str = MagicMock(return_value="")
    filter = FilterOperator("f", "=", 0)

    assert f(filter, [], "a") == "a.data->>%s = %s::text"
コード例 #8
0
def test_build_filter_str_none_invalid(query_helper: SqlQueryHelper):
    filter = FilterOperator("field", ">", None)
    with pytest.raises(InvalidFormat):
        query_helper.build_filter_str(filter, [])
コード例 #9
0
def test_build_filter_str_none(query_helper: SqlQueryHelper):
    filter = FilterOperator("field", "!=", None)
    args = []
    assert query_helper.build_filter_str(filter,
                                         args) == "data->>%s IS NOT NULL"
    assert args == ["field"]