def testFrameDoer(self):
        """
        Test adding a Doer to a frame and running it
        """
        console.terse("{0}\n".format(self.testFrameDoer.__doc__))
        @doing.doify("TestDoer")
        def action(self, a="Felgercarb", **kwa):
            """
            Doer action method
            """
            share = self.store.create(".test.a").update(value=a)

        self.assertIn("TestDoer", doing.Doer.Registry)
        act = self.addDoer("TestDoer")
        self.assertIsInstance(act, acting.Act)
        self.assertIn(act, self.frame.reacts)
        self.assertEqual(act.actor, "TestDoer")
        self.assertEqual(act.frame, self.frame.name)

        self.resolve()  # resolve House
        self.assertIs(act.frame, self.frame)
        self.assertIs(act.frame.framer, self.framer)
        self.assertIs(act.actor.store, self.store)
        self.assertIn(act.actor.name, doing.Doer.Registry)
        self.assertEqual(act.actor.name, "TestDoer")
        self.assertIsInstance(act.actor, doing.Doer)
        self.assertEqual(act.actor.__class__.__name__, "TestDoer")
        if sys.version > '3':
            self.assertEqual(act.actor.action.__self__.__class__.__name__, "TestDoer")
            self.assertIs(act.actor.action.__func__, action)
            self.assertIs(act.actor.action.__self__, act.actor)
        else:
            self.assertEqual(act.actor.action.im_class.__name__, "TestDoer")
            self.assertIs(act.actor.action.im_func, action)
            self.assertIs(act.actor.action.im_self, act.actor)
        self.assertEqual(act.actor.action.__doc__, '\n            Doer action method\n            ')
        self.assertEqual(act.actor.action.__name__, 'action')

        self.assertIs(self.store.fetch(".test.a"), None)
        self.frame.recur()  # run reacts in frame
        share = self.store.fetch(".test.a")
        self.assertIsInstance(share, storing.Share )
        self.assertEqual(share.value, "Felgercarb")
dataset/ETHPy150Open ioflo/ioflo/ioflo/base/test/test_acting.py/BasicTestCase.testFrameDoer/original