python - Robot Framework location and name of keyword -


i want create python library 0 argument function custom robot framework keywords can call. needs know absolute path of file keyword defined, , name of keyword. know how similar test cases using robot.libraries.builtin library , ${suite_source} , ${test name} variables, can't find similar custom keywords. don't care how complicated answer is, maybe have dig guts of robot framework's internal classes , access data somehow. there way this?

thanks janne able find solution.

from robot.running.context import execution_contexts  def resource_locator():     name      = execution_contexts.current.keywords[-1].name     libname   = execution_contexts.current.get_handler(name).libname     resources = execution_contexts.current.namespace._kw_store.resources     path = ""     key in resources._keys:         if resources[key].name == libname:             path = key             break     return {'name': name, 'path': path} 

execution_contexts.current.keywords stack of keywords called, earliest first , recent last, execution_contexts.current.keywords[-1] gets last keyword, keyword called function.

execution_contexts.current.get_handler(name).libname gets name of library in keyword name defined. in case of user defined keywords, filename (not full path) minus extension.

execution_contexts.current.namespace._kw_store.resources dictionary of included resources, key absolute path. because file path key, have search key such value's name name of resource in keyword defined (libname)


Comments

Popular posts from this blog

html - height not adding height to a empty div -

Oracle SQL. How to select specific IDs where value of columns specify criteria? -