def METHOD_NAME(self):
    choices = [
        AttrFactory.create(
            types=[
                AttrTypeFactory.create("bar", forward=True),
                AttrTypeFactory.create("foo", forward=True),
            ]
        ),
        AttrFactory.reference("foo"),
        AttrFactory.reference("foo", forward=True),
        AttrFactory.reference("bar", forward=True),
    ]
    choice = AttrFactory.create(
        name="attr_B_Or_attr_C",
        tag="Choice",
        index=0,
        types=[AttrTypeFactory.native(DataType.ANY_TYPE)],
        choices=choices,
    )
    target = ClassFactory.create()
    target.attrs.append(choice)
    result = self.processor.find_attr_types(target, "foo")
    self.assertIsInstance(result, Generator)
    self.assertEqual(choices[0].types[1], next(result))
    self.assertEqual(choices[2].types[0], next(result))
    self.assertIsNone(next(result, None))
    result = self.processor.find_attr_types(target, "bar")
    self.assertEqual(choices[0].types[0], next(result))
    self.assertEqual(choices[3].types[0], next(result))
    self.assertIsNone(next(result, None))