def METHOD_NAME(self):
    # free and cell vars in y
    l = []
    c = "squirrel"
    def x():
        b = "dog"
        l.append(b)
        l.append(c)
        def y():
            a = "cat"
            l.append(a)
            l.append(b)
            def z():
                return a,b,c
            return z
        return y()
    self.assertEqual(x()(), ('cat', 'dog', 'squirrel'))
    self.assertEqual(l, ['dog', 'squirrel', 'cat', 'dog'])