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",)
def tryCreate(ad, r): argSpec = ArgSpecGiven(argsDocs=ad, reqdArgs=r) msgArgsInfo = ArgsInfo(nameTuple, argSpec, parent._getListenerSpec()) obj = Topic(treeConfig, nameTuple, description, msgArgsInfo, parent=parent)
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
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', )
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