示例#1
0
def test_combining_empty_query():
    # when Django combines an empty with an empty, it will only output one.
    expected = EmptyQuery()
    query = Q() & Q()
    expanded = expand_query(FakeModel, query)
    assert are_equal(expected, expanded)
    assert wrap(expanded).as_python(None)
示例#2
0
def test_query():
    expected = True
    query = Q(int_field__gt=20)
    wrapped = wrap(query)
    instance = ControlFlowModel(int_field=50)

    assert expected == wrapped.as_python(instance)
示例#3
0
def test_negated_empty_as_a_sibling():
    expected = Exact(
        ExpressionWrapper(F('int_field'), output_field=IntegerField()),
        Value(1))
    query = Q(~Q(), Q(int_field=1))
    expanded = expand_query(FakeModel, query)
    assert are_equal(expected, expanded)
    assert wrap(expanded).as_python(dict(int_field=1))
示例#4
0
def test_combining_empty_with_query():
    expected = Exact(
        ExpressionWrapper(F('int_field'), output_field=IntegerField()),
        Value(1))
    query = Q() & Q(int_field=1)
    expanded = expand_query(FakeModel, query)
    assert are_equal(expected, expanded)
    assert wrap(expanded).as_python(dict(int_field=1))
示例#5
0
def test_wrap_wraps():
    ObjToRegister = type('ObjToRegister', (object,), {})
    registry.register(ObjToRegister, FakeWrapper)

    wrapped = wrap.wrap(ObjToRegister)
    assert isinstance(wrapped, FakeWrapper)
    assert wrapped.expression is ObjToRegister

    registry.unregister(ObjToRegister)
示例#6
0
def test_case():
    expected = "Woot!"
    expression = Case(
        When(int_field__lt=20, then=Value("got 20!")),
        When(int_field=23, then=Value("Woot!")),
    )
    wrapped = wrap(expression)
    instance = ControlFlowModel(int_field=23)

    assert expected == wrapped.as_python(instance)
示例#7
0
def test_multiple_empty_children():
    expected = EmptyQuery()
    query = Q(Q(), Q())
    expanded = expand_query(FakeModel, query)
    assert are_equal(expected, expanded)
    assert wrap(expanded).as_python(None)
示例#8
0
def test_negated_empty_query():
    expected = EmptyQuery()
    query = ~Q()
    expanded = expand_query(FakeModel, query)
    assert are_equal(expected, expanded)
    assert wrap(expanded).as_python(None)
示例#9
0
def test_wrap_ignores_python_supported():
    obj_to_wrap = FakeSupportsPython()
    wrapped = wrap.wrap(obj_to_wrap)
    assert wrapped is obj_to_wrap
示例#10
0
 def get_wrapped(self):
     expression = self.get_expression()
     return wrap(expression)