Example #1
0
def test2_CreateChild():
    #
    # Test creation of a child topic, subscription of listeners
    #

    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, rootTopic._getListenerSpec())
    parent = Topic(treeConfig, nameTuple, description, msgArgsInfo, parent=rootTopic)
    assert parent.getParent() is 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(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",)
    pytest.raises(MessageDataSpecError, tryCreate, argsDocs, reqdArgs)
    reqdArgs = ()
    pytest.raises(MessageDataSpecError, tryCreate, argsDocs, reqdArgs)
    # test when missing opt arg
    argsDocs = dict(arg1="arg1 desc", arg2="arg2 desc")
    reqdArgs = ("arg2",)
Example #2
0
 def tryCreate(ad, r):
     argSpec = ArgSpecGiven(argsDocs=ad, reqdArgs=r)
     msgArgsInfo = ArgsInfo(nameTuple, argSpec, parent._getListenerSpec())
     obj = Topic(treeConfig,
                 nameTuple,
                 description,
                 msgArgsInfo,
                 parent=parent)
Example #3
0
def test_CreateRoot():
    #
    # 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
    pytest.raises(ValueError, Topic, 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(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 listener3(arg1=None): pass # extra is optional
    assert obj.isValid(listener1)
    assert not obj.isValid(badListener1)
    assert obj.isValid(listener3)

    global rootTopic
    rootTopic = obj
Example #4
0
def test2_CreateChild():
    #
    # Test creation of a child topic, subscription of listeners
    #

    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, rootTopic._getListenerSpec())
    parent = Topic(treeConfig,
                   nameTuple,
                   description,
                   msgArgsInfo,
                   parent=rootTopic)
    assert parent.getParent() is 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(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', )
    pytest.raises(MessageDataSpecError, tryCreate, argsDocs, reqdArgs)
    reqdArgs = ()
    pytest.raises(MessageDataSpecError, tryCreate, argsDocs, reqdArgs)
    # test when missing opt arg
    argsDocs = dict(arg1='arg1 desc', arg2='arg2 desc')
    reqdArgs = ('arg2', )
Example #5
0
def test0_CreateRoot():
    #
    # 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
    pytest.raises(ValueError, Topic, 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(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 listener3(arg1=None):
        pass  # extra is optional

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

    global rootTopic
    rootTopic = obj