예제 #1
0
파일: faults.py 프로젝트: cmur2/bundlewrap
def test_unhashable_list_kwargs_add_to_idlist():
    def callback():
        return 'foo'

    a = Fault('id foo', callback, foo='bar', baz=[1, 2, [3, 4]])
    b = Fault('id foo', callback, foo='bar', baz=[1, [3, 4], 2])
    assert a != b
    assert hash(a) != hash(b)
예제 #2
0
파일: faults.py 프로젝트: cmur2/bundlewrap
def test_unhashable_dict_kwargs_add_to_idlist_equal():
    def callback():
        return 'foo'

    a = Fault('id foo', callback, foo='bar', baz={1: {2: {3: 4, 5: 6}}})
    b = Fault('id foo', callback, foo='bar', baz={1: {2: {5: 6, 3: 4}}})
    assert a == b
    assert hash(a) == hash(b)
예제 #3
0
파일: faults.py 프로젝트: cmur2/bundlewrap
def test_kwargs_add_to_idlist():
    def callback():
        return 'foo'

    a = Fault('id foo', callback, foo='bar', baz='bam', frob='glob')
    b = Fault('id foo', callback, different='kwargs')
    assert a != b
    assert hash(a) != hash(b)
예제 #4
0
파일: faults.py 프로젝트: cmur2/bundlewrap
def test_unhashable_dict_kwargs_add_to_idlist():
    def callback():
        return 'foo'

    a = Fault('id foo', callback, foo='bar', baz={1: {2: {3: 4}}})
    b = Fault('id foo', callback, foo='bar', baz={1: {3: {3: 4}}})
    assert a != b
    assert hash(a) != hash(b)
예제 #5
0
파일: faults.py 프로젝트: cmur2/bundlewrap
def test_unhashable_set_kwargs_add_to_idlist_equal():
    def callback():
        return 'foo'

    a = Fault('id foo', callback, foo='bar', baz={1, 2, 3})
    b = Fault('id foo', callback, foo='bar', baz={1, 3, 2})
    assert a == b
    assert hash(a) == hash(b)
예제 #6
0
파일: faults.py 프로젝트: cmur2/bundlewrap
def test_unhashable_list_kwargs_add_to_idlist_equal():
    def callback():
        return 'foo'

    a = Fault('id foo', callback, foo='bar', baz=[1, 2, 3])
    b = Fault('id foo', callback, foo='bar', baz=[1, 2, 3])
    assert id(a) != id(b)
    assert a == b
예제 #7
0
파일: faults.py 프로젝트: cmur2/bundlewrap
def test_eq_and_hash_do_not_resolve_fault():
    def callback():
        raise Exception('Fault resolved, this should not happen')

    a = Fault('id foo', callback)
    b = Fault('id foo', callback)
    assert a == b

    s = {a, b}
예제 #8
0
파일: faults.py 프로젝트: veecue/bundlewrap
def test_equal_no_operators():
    def callback_a():
        return 'foo'
    def callback_b():
        return 'foo, but here you see the problem'

    a = Fault('id foo', callback_a)
    b = Fault('id foo', callback_b)
    assert id(a) != id(b)
    assert a == b
예제 #9
0
파일: faults.py 프로젝트: veecue/bundlewrap
def test_add_fault_nonstring():
    def callback_a():
        return 4
    def callback_b():
        return 8

    a = Fault('id foo', callback_a)
    b = Fault('id bar', callback_b)
    c = a + b
    assert c.value == 12
예제 #10
0
파일: faults.py 프로젝트: veecue/bundlewrap
def test_nested_not_equal_because_of_operators():
    def callback_a():
        return 'foo'
    def callback_b():
        return 'foo'

    a = Fault('id foo', callback_a).lower().b64encode()
    b = Fault('id foo', callback_b).lower()
    assert id(a) != id(b)
    assert a != b
예제 #11
0
파일: faults.py 프로젝트: veecue/bundlewrap
def test_nested_equal():
    def callback_a():
        return 'foo'
    def callback_b():
        return 'foo'

    a = Fault('id foo', callback_a).lower().b64encode()
    b = Fault('id foo', callback_b).lower().b64encode()
    assert id(a) != id(b)
    assert a == b
예제 #12
0
파일: faults.py 프로젝트: veecue/bundlewrap
def test_not_equal_format_into():
    def callback_a():
        return 'foo'
    def callback_b():
        return 'foo'

    a = Fault('id foo', callback_a).format_into('bar {}')
    b = Fault('id foo', callback_b).format_into('baz {}')
    assert id(a) != id(b)
    assert a != b
예제 #13
0
파일: faults.py 프로젝트: veecue/bundlewrap
def test_not_equal_b64encode():
    def callback_a():
        return 'foo'
    def callback_b():
        return 'foo'

    a = Fault('id foo', callback_a).b64encode()
    b = Fault('id bar', callback_b).b64encode()
    assert id(a) != id(b)
    assert a != b
예제 #14
0
파일: faults.py 프로젝트: veecue/bundlewrap
def test_equal_lower():
    def callback_a():
        return 'foo'
    def callback_b():
        return 'foo'

    a = Fault('id foo', callback_a).lower()
    b = Fault('id foo', callback_b).lower()
    assert id(a) != id(b)
    assert a == b
예제 #15
0
파일: faults.py 프로젝트: veecue/bundlewrap
def test_not_equal_no_operators():
    def callback_a():
        return 'this interface is not fool proof'
    def callback_b():
        return 'this interface is not fool proof'

    a = Fault('id foo', callback_a)
    b = Fault('id bar', callback_b)
    assert id(a) != id(b)
    assert a != b
예제 #16
0
파일: faults.py 프로젝트: veecue/bundlewrap
def test_add_fault():
    def callback_a():
        return 'foo'
    def callback_b():
        return 'bar'

    a = Fault('id foo', callback_a)
    b = Fault('id bar', callback_b)
    c = a + b
    assert c.value == 'foobar'
예제 #17
0
파일: faults.py 프로젝트: cmur2/bundlewrap
def test_sort():
    def one():
        return 1

    def three():
        return 3

    f1 = Fault("1", one)
    f3 = Fault("3", three)

    assert sorted([2, f3, f1]) == [f1, 2, f3]
예제 #18
0
파일: faults.py 프로젝트: cmur2/bundlewrap
def test_sort_typeerror_from_fault():
    def one():
        return 1

    def three():
        return "3"

    f1 = Fault("1", one)
    f3 = Fault("3", three)

    with raises(TypeError):
        sorted([2, f3, f1])
예제 #19
0
파일: faults.py 프로젝트: cmur2/bundlewrap
def test_sort_typeerror():
    def one():
        return 1

    def three():
        return 3

    f1 = Fault("1", one)
    f3 = Fault("3", three)

    with raises(TypeError):
        sorted(["2", f3, f1])
예제 #20
0
파일: faults.py 프로젝트: cmur2/bundlewrap
def test_kwargs_not_changed_after_creation():
    def callback():
        return 'foo'

    data = {
        'foo': 0,
    }
    a = Fault('id foo', callback, data=data)
    b = Fault('id foo', callback, data=data)

    assert a == b
    assert hash(a) == hash(b)
예제 #21
0
파일: faults.py 프로젝트: veecue/bundlewrap
def test_can_be_used_in_set():
    def callback_a():
        return 'foo'
    def callback_b():
        return 'bar'

    a = Fault('id foo', callback_a)
    b = Fault('id bar', callback_b)
    s = {a, a, b}
    assert len(s) == 2
    assert 'foo' in [i.value for i in s]
    assert 'bar' in [i.value for i in s]
예제 #22
0
def test_changes_fault():
    def callback1():
        return 1

    def callback2():
        return 2

    assert not changes_metadata(
        {
            'foo': Fault(callback1),
        },
        {
            'foo': Fault(callback2),
        },
    )
예제 #23
0
def format(fault, format_string):
    return Fault(
        "bwtv format",
        _format,
        fault=fault,
        format_string=format_string,
    )
예제 #24
0
def password_crypt_sha512(secret_id, site="default"):
    return Fault(
        "bwtv password_crypt_sha512",
        _password_crypt_sha512,
        secret_id=secret_id,
        site=site,
    )
예제 #25
0
def htpasswd_entry(secret_id, site="default"):
    return Fault(
        "bwtv htpasswd_entry",
        _htpasswd_entry,
        secret_id=secret_id,
        site=site,
    )
예제 #26
0
def file_as_base64(secret_id, site="default"):
    return Fault(
        "bwtv file_as_base64",
        _file_as_base64,
        secret_id=secret_id,
        site=site,
    )
예제 #27
0
파일: faults.py 프로젝트: cmur2/bundlewrap
def test_add_plain():
    def callback_a():
        return 'foo'

    a = Fault('id foo', callback_a)
    c = a + 'bar'
    assert c.value == 'foobar'
예제 #28
0
파일: faults.py 프로젝트: cmur2/bundlewrap
def test_add_plain_nonstring():
    def callback():
        return 4

    a = Fault('id foo', callback)
    b = a + 8
    assert b.value == 12
예제 #29
0
파일: faults.py 프로젝트: cmur2/bundlewrap
def test_kwargs_changed_after_creation():
    def callback():
        return 'foo'

    data = {
        'foo': 0,
    }
    a = Fault('id foo', callback, data=data)

    data['foo'] = 1
    b = Fault('id foo', callback, data=data)

    # Even though both Faults reference the same dict, hashes are built
    # on Fault creation based on the actual values in mutable
    # parameters.
    assert a != b
    assert hash(a) != hash(b)
예제 #30
0
파일: faults.py 프로젝트: veecue/bundlewrap
def test_order():
    def callback_a():
        return 'foo'
    def callback_b():
        return 'bar'
    def callback_c():
        return '0first'

    a = Fault('id foo', callback_a)
    b = Fault('id bar', callback_b)
    c = Fault('id 0first', callback_c)

    lst = sorted([a, b, c])

    assert lst[0].value == '0first'
    assert lst[1].value == 'bar'
    assert lst[2].value == 'foo'