def test_eval_field_callable():
    """Test string evaluation."""
    def mycallable(order):
        return {'afield': {'order': 'asc' if order else 'desc'}}

    assert eval_field(mycallable, True) == dict(afield=dict(order='asc'))
    assert eval_field(mycallable, False) == dict(afield=dict(order='desc'))
def test_eval_field_callable():
    """Test string evaluation."""
    def mycallable(order):
        return {'afield': {'order': 'asc' if order else 'desc'}}

    assert eval_field(mycallable, True) == dict(afield=dict(order='asc'))
    assert eval_field(mycallable, False) == dict(afield=dict(order='desc'))
def test_eval_field_dict():
    """Test string evaluation."""
    field = {'myfield': {'order': 'asc', 'mode': 'avg'}}

    assert eval_field(field,
                      True) == dict(myfield=dict(order='asc', mode='avg'))
    computed = eval_field(field, False)
    assert computed == dict(myfield=dict(order='desc', mode='avg'))
    # Test for immutability
    assert field != computed
def test_eval_field_dict():
    """Test string evaluation."""
    field = {'myfield': {'order': 'asc', 'mode': 'avg'}}

    assert eval_field(field, True) == dict(
        myfield=dict(order='asc', mode='avg'))
    computed = eval_field(field, False)
    assert computed == dict(
        myfield=dict(order='desc', mode='avg'))
    # Test for immutability
    assert field != computed
def test_eval_field_string():
    """Test string evaluation."""
    assert eval_field("myfield", True) == dict(myfield=dict(order='asc'))
    assert eval_field("myfield", False) == dict(myfield=dict(order='desc'))
    assert eval_field("-myfield", True) == dict(myfield=dict(order='desc'))
    assert eval_field("-myfield", False) == dict(myfield=dict(order='asc'))
def test_eval_field_string():
    """Test string evaluation."""
    assert eval_field("myfield", True) == dict(myfield=dict(order='asc'))
    assert eval_field("myfield", False) == dict(myfield=dict(order='desc'))
    assert eval_field("-myfield", True) == dict(myfield=dict(order='desc'))
    assert eval_field("-myfield", False) == dict(myfield=dict(order='asc'))