def test_source_unannotated(): children.reset() parents.reset() parent = m.Parent() assert parents.alive == 1 assert children.created == 0 assert children.destroyed == 0 parent.source() assert children.created == 1 assert children.destroyed == 1 assert children.alive == 0 del parent assert parents.alive == 0
def test_ctor_keep_alive(): children.reset() parents.reset() assert children.created == 0 assert children.destroyed == 0 assert children.alive == 0 assert parents.alive == 0 parent = m.Parent(m.Child()) assert children.created == 1 assert children.destroyed == 0 assert children.alive == 1 assert parents.alive == 1 del parent assert parents.alive == 0 assert children.created == 1 assert children.destroyed == 1 assert children.alive == 0
def test_sink_keep_alive_plain(): children.reset() parents.reset() parent = m.Parent() assert parents.alive == 1 assert children.created == 0 assert children.destroyed == 0 assert children.alive == 0 parent.sink_keep_alive_plain(m.Child()) assert children.created == 1 assert children.destroyed == 0 assert children.alive == 1 del parent assert parents.alive == 0 assert children.created == 1 assert children.destroyed == 1 assert children.alive == 0
def test_sink_unannotated(): children.reset() parents.reset() parent = m.Parent() assert parents.alive == 1 assert children.created == 0 assert children.destroyed == 0 m.Child() assert children.created == 1 assert children.destroyed == 1 assert children.alive == 0 parent.sink(m.Child()) assert children.created == 2 assert children.destroyed == 2 assert children.alive == 0 del parent assert parents.alive == 0
def test_source_keep_alive_parent(): children.reset() parents.reset() parent = m.Parent() assert parents.alive == 1 assert children.created == 0 assert children.destroyed == 0 child = parent.source_keep_alive_parent() assert children.created == 1 assert children.destroyed == 0 assert children.alive == 1 del parent assert parents.alive == 1 assert children.alive == 1 del child assert parents.alive == 0 assert children.alive == 0