コード例 #1
0
    def test2_CreateChild(self):
        #
        # Test creation of a child topic, subscription of listeners
        #

        # need to run this here again to get rootTopic setup for this test
        self.test0_CreateRoot()

        nameTuple = ('childOfAll', )
        description = 'child description'
        argsDocs = dict(arg1='arg1 desc', arg2='arg2 desc')
        reqdArgs = ('arg2', )
        argSpec = ArgSpecGiven(argsDocs=argsDocs, reqdArgs=reqdArgs)
        msgArgsInfo = ArgsInfo(nameTuple, argSpec,
                               self.rootTopic._getListenerSpec())
        parent = Topic(self.treeConfig,
                       nameTuple,
                       description,
                       msgArgsInfo,
                       parent=self.rootTopic)
        assert parent.getParent() is self.rootTopic

        # now create a child of child with wrong arguments so we can test exceptions
        nameTuple = ('childOfAll', 'grandChild')
        description = 'grandchild description'

        def tryCreate(ad, r):
            argSpec = ArgSpecGiven(argsDocs=ad, reqdArgs=r)
            msgArgsInfo = ArgsInfo(nameTuple, argSpec,
                                   parent._getListenerSpec())
            obj = Topic(self.treeConfig,
                        nameTuple,
                        description,
                        msgArgsInfo,
                        parent=parent)

        # test when all OK
        argsDocs = dict(arg1='arg1 desc', arg2='arg2 desc')
        reqdArgs = ('arg2', )
        tryCreate(argsDocs, reqdArgs)
        # test when requiredArg wrong
        reqdArgs = ('arg3', )
        self.assertRaises(MessageDataSpecError, tryCreate, argsDocs, reqdArgs)
        reqdArgs = ()
        self.assertRaises(MessageDataSpecError, tryCreate, argsDocs, reqdArgs)
        # test when missing opt arg
        argsDocs = dict(arg1='arg1 desc', arg2='arg2 desc')
        reqdArgs = ('arg2', )
コード例 #2
0
 def tryCreate(ad, r):
     argSpec = ArgSpecGiven(argsDocs=ad, reqdArgs=r)
     msgArgsInfo = ArgsInfo(nameTuple, argSpec,
                            parent._getListenerSpec())
     obj = Topic(self.treeConfig,
                 nameTuple,
                 description,
                 msgArgsInfo,
                 parent=parent)
コード例 #3
0
    def test2_CreateChild(self):
        #
        # Test creation of a child topic, subscription of listeners
        #

        # need to run this here again to get rootTopic setup for this test
        self.test0_CreateRoot()

        nameTuple = ('childOfAll',)
        description = 'child description'
        argsDocs = dict(arg1='arg1 desc', arg2='arg2 desc')
        reqdArgs = ('arg2',)
        argSpec = ArgSpecGiven(argsDocs=argsDocs, reqdArgs = reqdArgs)
        msgArgsInfo = ArgsInfo(nameTuple, argSpec, self.rootTopic._getListenerSpec())
        parent = Topic(self.treeConfig, nameTuple, description, msgArgsInfo,
                       parent=self.rootTopic)
        assert parent.getParent() is self.rootTopic

        # now create a child of child with wrong arguments so we can test exceptions
        nameTuple = ('childOfAll', 'grandChild')
        description = 'grandchild description'

        def tryCreate(ad, r):
            argSpec = ArgSpecGiven(argsDocs=ad, reqdArgs = r)
            msgArgsInfo = ArgsInfo(nameTuple, argSpec, parent._getListenerSpec())
            obj = Topic(self.treeConfig, nameTuple, description, msgArgsInfo,
                        parent=parent)

        # test when all OK
        argsDocs = dict(arg1='arg1 desc', arg2='arg2 desc')
        reqdArgs = ('arg2',)
        tryCreate(argsDocs, reqdArgs)
        # test when requiredArg wrong
        reqdArgs = ('arg3',)
        self.assertRaises(MessageDataSpecError, tryCreate, argsDocs, reqdArgs)
        reqdArgs = ()
        self.assertRaises(MessageDataSpecError, tryCreate, argsDocs, reqdArgs)
        # test when missing opt arg
        argsDocs = dict(arg1='arg1 desc', arg2='arg2 desc')
        reqdArgs = ('arg2',)
コード例 #4
0
    def test0_CreateRoot(self):
        #
        # Test create and then modify state of a topic object
        #

        nameTuple = ('root', )
        description = 'root description'
        msgArgsInfo = None

        # when parent is None, only nameTuple=ALL_TOPICS is allowed, thereby
        # guaranteeing that only one tree root can be created
        self.assertRaises(ValueError, Topic, self.treeConfig, nameTuple,
                          description, msgArgsInfo)

        # create the ALL TOPICS topic; it has no message args
        nameTuple = (ALL_TOPICS, )
        argSpec = ArgSpecGiven(dict())
        msgArgsInfo = ArgsInfo(nameTuple, argSpec, None)
        obj = Topic(self.treeConfig, nameTuple, description, msgArgsInfo)

        # verify its state is as expected after creation:
        assert obj.getListeners() == []
        assert obj.getNumListeners() == 0
        assert obj.hasListeners() == False

        def listener1():
            pass

        def listener2():
            pass

        def badListener1(arg1):
            pass  # extra required arg

        def badListener2(arg1=None):
            pass  # extra is optional

        assert obj.isValid(listener1)
        assert not obj.isValid(badListener1)
        assert not obj.isValid(badListener2)

        self.rootTopic = obj
コード例 #5
0
    def test0_CreateRoot(self):
        #
        # Test create and then modify state of a topic object
        #

        nameTuple = ("root",)
        description = "root description"
        msgArgsInfo = None

        # when parent is None, only nameTuple=ALL_TOPICS is allowed, thereby
        # guaranteeing that only one tree root can be created
        self.assertRaises(ValueError, Topic, self.treeConfig, nameTuple, description, msgArgsInfo)

        # create the ALL TOPICS topic; it has no message args
        nameTuple = (ALL_TOPICS,)
        argSpec = ArgSpecGiven(dict())
        msgArgsInfo = ArgsInfo(nameTuple, argSpec, None)
        obj = Topic(self.treeConfig, nameTuple, description, msgArgsInfo)

        # verify its state is as expected after creation:
        assert obj.getListeners() == []
        assert obj.getNumListeners() == 0
        assert obj.hasListeners() == False

        def listener1():
            pass

        def listener2():
            pass

        def badListener1(arg1):
            pass  # extra required arg

        def badListener2(arg1=None):
            pass  # extra is optional

        assert obj.isValid(listener1)
        assert not obj.isValid(badListener1)
        assert not obj.isValid(badListener2)

        self.rootTopic = obj