def _validate_topic_or_service_name(self, topic_or_service_name, *, is_service=False): name = self.get_name() namespace = self.get_namespace() validate_node_name(name) validate_namespace(namespace) validate_topic_name(topic_or_service_name, is_service=is_service) expanded_topic_or_service_name = expand_topic_name(topic_or_service_name, name, namespace) validate_full_topic_name(expanded_topic_or_service_name, is_service=is_service)
def test_validate_topic_name_failures_service(self): # service name may not contain '?' with self.assertRaisesRegex(InvalidServiceNameException, 'must not contain characters'): validate_topic_name('/invalid_service?', is_service=True) # service name must start with number in any token with self.assertRaisesRegex(InvalidServiceNameException, 'must not start with a number'): validate_topic_name('invalid/42service', is_service=True)
def test_validate_topic_name_failures(self): # topic name may not contain '?' with self.assertRaisesRegex(InvalidTopicNameException, 'must not contain characters'): validate_topic_name('/invalid_topic?') # topic name must start with number in any token with self.assertRaisesRegex(InvalidTopicNameException, 'must not start with a number'): validate_topic_name('invalid/42topic')
def test_validate_topic_name(self): tests = [ 'chatter', '{node}/chatter', '~/chatter', ] for topic in tests: # Will raise if invalid validate_topic_name(topic)
def _count_publishers_or_subscribers(self, topic_name, func): fq_topic_name = expand_topic_name(topic_name, self.get_name(), self.get_namespace()) validate_topic_name(fq_topic_name) return func(self.handle, fq_topic_name)
def TopicNameArg(value): try: validate_topic_name(value) except InvalidTopicNameException as e: raise argparse.ArgumentTypeError(str(e)) return value