Пример #1
0
def test_close_multiple_order():
    a = MockClosable()
    b = MockClosable()
    c = MockClosable()
    close_multiple([a, b, c])
    assert all([x.is_properly_closed for x in [a, b, c]])
    assert a.relative_close_order > b.relative_close_order > c.relative_close_order
Пример #2
0
def test_resource_list_close_order():
    a = MockClosable()
    b = MockClosable()
    c = MockClosable()
    my_list = ResourcesList(a, b, c)
    my_list.close()
    assert all([x.is_properly_closed for x in my_list.resources])
    assert a.relative_close_order > b.relative_close_order > c.relative_close_order
Пример #3
0
def test_close_multiple_exceptions():
    a = MockClosable()
    exception_1 = MockException()
    exception_2 = DifferentMockException()
    b = MockClosable(exception_on_close=exception_1)
    c = MockClosable()
    d = MockClosable(exception_on_close=exception_2)
    e = MockClosable()
    try:
        close_multiple([a, b, c, d, e])
    except SomeCloseFailedException as last_exception:
        assert (d, exception_2) in last_exception.resource_close_failings
        assert (b, exception_1) in last_exception.resource_close_failings
    else:
        assert False, "Should have thrown"

    assert all([x.is_properly_closed for x in [a, b, c, d, e]])
    assert a.relative_close_order > b.relative_close_order > c.relative_close_order > \
           d.relative_close_order > e.relative_close_order
Пример #4
0
def test_close_nothrow_no_exception():
    mock_closable = MockClosable()
    close_nothrow(mock_closable)
    assert mock_closable.is_properly_closed
Пример #5
0
def test_close_nothrow_on_exception():
    with pytest.raises(MockException):
        MockClosable(exception_on_close=MockException()).close()
    mock_closable = MockClosable(exception_on_close=MockException())
    close_nothrow(mock_closable)
    assert mock_closable.is_properly_closed
Пример #6
0
def test_iter():
    a = MockClosable()
    b = MockClosable()
    c = MockClosable()
    for x, y in zip(ResourcesList(a, b, c), [a, b, c]):
        assert x == y
Пример #7
0
def multiple_mock_closables():
    return [MockClosable(), MockClosable(), MockClosable(), MockClosable()]
Пример #8
0
def mock_closable():
    return MockClosable()
Пример #9
0
 def __init__(self):
     self.a = MockClosable()
     self.b = MockClosable()
     self.c = MockClosable()
Пример #10
0
 def __init__(self):
     self.x = MyResourceOwner()
     self.y = MockClosable()
     self.z = MyResourceOwner()