Esempio n. 1
0
 def _parse_python_lib(self, library, args):
     lib_with_args = self._lib_arg_formatter(library, args)
     kws = {}
     try:
         lib = self.libdoc.build(lib_with_args)
     except DataError:
         raise ValueError('Library does not exist: {0}'.format(library))
     if library in STDLIBS:
         import_name = 'robot.libraries.' + library
     else:
         import_name = library
     importer = Importer('test library')
     libcode = importer.import_class_or_module(import_name,
                                               return_source=False)
     kw_with_deco = self._get_keywords_with_robot_name(libcode)
     for keyword in lib.keywords:
         kw = {}
         kw[DBJsonSetting.keyword_name] = keyword.name
         kw[DBJsonSetting.tags] = list(keyword.tags._tags)
         kw[DBJsonSetting.keyword_arguments] = keyword.args
         kw[DBJsonSetting.documentation] = keyword.doc
         if keyword.name in kw_with_deco:
             function_name = kw_with_deco[keyword.name]
         else:
             function_name = keyword.name
         kw[DBJsonSetting.keyword_file] = self._get_library_kw_source(
             libcode, function_name)
         kws[strip_and_lower(keyword.name)] = kw
     return kws
 def _parse_python_lib(self, library, args):
     lib_with_args = self._lib_arg_formatter(library, args)
     kws = {}
     try:
         lib = self.libdoc.build(lib_with_args)
     except DataError:
         raise ValueError(
             'Library does not exist: {0}'.format(library))
     if library in STDLIBS:
         import_name = 'robot.libraries.' + library
     else:
         import_name = library
     importer = Importer('test library')
     libcode = importer.import_class_or_module(
         import_name, return_source=False)
     kw_with_deco = self._get_keywords_with_robot_name(libcode)
     for keyword in lib.keywords:
         kw = {}
         kw[DBJsonSetting.keyword_name] = keyword.name
         kw[DBJsonSetting.tags] = list(keyword.tags._tags)
         kw[DBJsonSetting.keyword_arguments] = keyword.args
         kw[DBJsonSetting.documentation] = keyword.doc
         if keyword.name in kw_with_deco:
             function_name = kw_with_deco[keyword.name]
         else:
             function_name = keyword.name
         kw[DBJsonSetting.keyword_file] = self._get_library_kw_source(
             libcode, function_name)
         kws[strip_and_lower(keyword.name)] = kw
     return kws
 def _get_reader_class_from_module(self, reader_name):
     importer = Importer('DataReader')
     self._debug(f'[ DataDriver ] Reader Module: {reader_name}')
     reader = importer.import_class_or_module(reader_name)
     if not inspect.isclass(reader):
         message = f"Importing custom DataReader class {reader_name} failed."
         raise ImportError(message)
     return reader
 def _parse_listener(self, event_firing_webdriver):
     listener_module = self._string_to_modules(event_firing_webdriver)
     listener_count = len(listener_module)
     if listener_count > 1:
         message = f"Is is possible import only one listener but there was {listener_count} listeners."
         raise ValueError(message)
     listener_module = listener_module[0]
     importer = Importer("test library")
     listener = importer.import_class_or_module(listener_module.module)
     if not isclass(listener):
         message = f"Importing test Selenium lister class '{listener_module.module}' failed."
         raise DataError(message)
     return listener
Esempio n. 5
0
 def _parse_plugins(self, plugins):
     libraries = []
     importer = Importer('test library')
     for parsed_plugin in self._string_to_modules(plugins):
         plugin = importer.import_class_or_module(parsed_plugin.module)
         if not isclass(plugin):
             message = "Importing test library: '%s' failed." % parsed_plugin.module
             raise DataError(message)
         plugin = plugin(self, *parsed_plugin.args, **parsed_plugin.kw_args)
         if not isinstance(plugin, LibraryComponent):
             message = 'Plugin does not inherit SeleniumLibrary.base.LibraryComponent'
             raise PluginError(message)
         self._store_plugin_keywords(plugin)
         libraries.append(plugin)
     return libraries
Esempio n. 6
0
 def _import_modules(self, plugins):
     importer = Importer('test library')
     return [
         importer.import_class_or_module(plugin.plugin)
         for plugin in plugins
     ]