23 from .builder
import ResourceFileBuilder
24 from .handlerstore
import HandlerStore
25 from .testlibraries
import TestLibrary
39 lib.close_global_listeners()
42 lib =
TestLibrary(name, args, variables, create_handlers=
False)
43 positional, named = lib.positional_args, lib.named_args
46 alias = variables.replace_scalar(alias)
48 LOGGER.info(
"Imported library '%s' with name '%s'" % (name, alias))
53 LOGGER.info(
"Found resource file '%s' from cache" % path)
60 args = positional + [
'%s=%s' % arg
for arg
in named]
61 key = (name, positional, named)
63 LOGGER.info(
"Found test library '%s' with arguments %s from cache"
72 type = lib.__class__.__name__.replace(
'Library',
'').
lower()[1:]
73 listener =
', with listener' if lib.has_listener
else ''
74 LOGGER.info(
"Imported library '%s' with arguments %s "
75 "(version %s, %s type, %s scope, %d keywords%s)"
76 % (name,
seq2str2(args), lib.version
or '<unknown>',
77 type, lib.scope, len(lib), listener))
78 if not lib
and not lib.has_listener:
79 LOGGER.warn(
"Imported library '%s' contains no keywords." % name)
90 lib.scope =
type(lib.scope)(lib)
93 orig.handlers.source_type)
94 for handler
in orig.handlers._normal.values():
95 handler = copy.copy(handler)
97 lib.handlers.add(handler)
98 for handler
in orig.handlers._embedded:
99 handler = copy.copy(handler)
100 handler.library = lib
101 lib.handlers.add(handler, embedded=
True)
117 if not is_string(key)
and not isinstance(key, tuple):
120 if key
not in self.
_keys_keys:
121 self.
_keys_keys.append(key)
122 self.
_items_items.append(item)
124 self.
_items_items[self.
_keys_keys.index(key)] = item
126 def add(self, key, item=None):
131 if key
not in self.
_keys_keys:
133 return self.
_items_items[self.
_keys_keys.index(key)]
143 return normpath(key, case_normalize=
True)
144 if isinstance(key, tuple):
149 return is_string(key)
and os.path.isabs(key)
and os.path.exists(key)
Can be used when the core framework goes to unexpected state.
Keeps track on and optionally caches imported items.
def __contains__(self, key)
def __getitem__(self, key)
def add(self, key, item=None)
def __setitem__(self, key, item)
def _norm_path_key(self, key)
def import_resource(self, path)
def close_global_library_listeners(self)
def _copy_library(self, orig, name)
def _import_library(self, name, positional, named, lib)
def import_library(self, name, args, alias, variables)
def _log_imported_library(self, name, args, lib)
def TestLibrary(name, args=None, variables=None, create_handlers=True)
def seq2str2(sequence)
Returns sequence in format [ item 1 | item 2 | ...
def normpath(path, case_normalize=False)
Replacement for os.path.normpath with some enhancements.