Ejemplo n.º 1
0
def test_cache_clearing():
    dispatch = Dispatcher()

    @dispatch(object)
    def f(x):
        return 1

    @dispatch(List(int))
    def f(x):
        return 1

    f(1)

    # Check that cache is used.
    assert len(f.methods) == 2
    assert len(f.precedences) == 2
    assert f._parametric

    dispatch.clear_cache()

    # Check that cache is cleared.
    assert len(f.methods) == 0
    assert len(f.precedences) == 0
    assert not f._parametric

    f(1)
    clear_all_cache()

    # Again check that cache is cleared.
    assert len(f.methods) == 0
    assert len(f.precedences) == 0
    assert len(subclasscheck_cache) == 0
    assert not f._parametric
Ejemplo n.º 2
0
def test_cache_clearing():
    dispatch = Dispatcher()

    @dispatch
    def f(x: object):
        return 1

    @dispatch
    def f(x: List[int]):
        return 1

    f(1)

    # Check that cache is used.
    assert len(f._methods) == 2
    assert len(f._precedences) == 2
    assert f._runtime_type_of

    dispatch.clear_cache()

    # Check that cache is cleared.
    assert len(f._methods) == 0
    assert len(f._precedences) == 0
    assert not f._runtime_type_of

    f(1)
    clear_all_cache()

    # Again check that cache is cleared.
    assert len(f._methods) == 0
    assert len(f._precedences) == 0
    assert len(subclasscheck_cache) == 0
    assert not f._runtime_type_of