def test_normpath(self): for inp, exp in self._get_inputs(): path = normpath(inp) assert_equal(path, exp, inp) assert_true(isinstance(path, unicode), inp) exp = exp.lower() if CASE_INSENSITIVE_FILESYSTEM else exp path = normpath(inp, case_normalize=True) assert_equal(path, exp, inp) assert_true(isinstance(path, unicode), inp)
def test_normpath(self): for inp, exp in self._get_inputs(): path = normpath(inp) assert_equal(path, exp, inp) assert_true(isinstance(path, unicode), inp) exp = exp.lower() if CASE_INSENSITIVE_FILESYSTEM else exp path = normpath(inp, case_normalize=True) assert_equal(path, exp, inp) assert_true(isinstance(path, unicode), inp)
def _get_path(self, setting_name, path, basedir): if setting_name == 'Library' and not self._is_library_by_path(path, basedir): return path path = self._resolve_path(setting_name, path.replace('/', os.sep), basedir) if setting_name in ['Variables','Library']: dirname, filename = os.path.split(os.path.normpath(path)) path = os.path.join(utils.normpath(dirname), filename) else: path = utils.normpath(path) return path
def _get_path(self, setting_name, path, basedir): if setting_name == 'Library' and not self._is_library_by_path(path, basedir): return path path = self._resolve_path(setting_name, path.replace('/', os.sep), basedir) if setting_name in ['Variables','Library']: dirname, filename = os.path.split(os.path.normpath(path)) path = os.path.join(utils.normpath(dirname), filename) else: path = utils.normpath(path) return path
def test_existing_absolute_paths_are_normalized(self): cache = ImportCache() path = join(abspath('.'), '.', os.listdir('.')[0]) value = object() cache[path] = value assert_equals(cache[path], value) assert_equals(cache._keys[0], normpath(path))
def source(self): handler = self.current_handler() # `getsourcefile` can return None and raise TypeError. try: source = inspect.getsourcefile(unwrap(handler)) except TypeError: source = None return normpath(source) if source else self.library.source
def __init__(self, outpath=None, title=None): if outpath is None: outpath = 'robotdiff.html' if title is None: title = 'Diff Report' self._output = open(utils.normpath(outpath), 'w') self._writer = utils.HtmlWriter(self._output) self.title = title self.column_names = [] self.suites_and_tests = {}
def __init__(self, name, source=None, parent=None): _TestAndSuiteHelper.__init__(self, name, parent) self.source = source is not None and utils.normpath(source) or None self.metadata = utils.NormalizedDict() self.suites = [] self.tests = [] self.critical = _Critical() self.critical_stats = Stat() self.all_stats = Stat() if parent: parent.suites.append(self)
def __init__(self, name, source=None, parent=None): _TestAndSuiteHelper.__init__(self, name, parent) self.source = source is not None and utils.normpath(source) or None self.metadata = utils.NormalizedDict() self.suites = [] self.tests = [] self.critical = _Critical() self.critical_stats = Stat() self.all_stats = Stat() if parent: parent.suites.append(self)
def _get_output_file(self, type_): """Returns path of the requested ouput file and creates needed dirs. Type can be 'Output', 'Log', 'Report' or 'Summary'. """ name = self._opts[type_] if name == 'NONE' and type_ in self._optional_outputs: return name name = self._process_output_name(name, type_) path = utils.normpath(os.path.join(self['OutputDir'], name), False) self._create_output_dir(os.path.dirname(path), type_) return path
def _get_output_file(self, type_): """Returns path of the requested ouput file and creates needed dirs. Type can be 'Output', 'Log', 'Report' or 'Summary'. """ name = self._opts[type_] if name == 'NONE' and type_ in self._optional_outputs: return name name = self._process_output_name(name, type_) path = utils.normpath(os.path.join(self['OutputDir'], name), False) self._create_output_dir(os.path.dirname(path), type_) return path
def _get_source_info(self): get_keyword_source = GetKeywordSource(self.library.get_instance()) try: source = get_keyword_source(self._handler_name) except DataError as err: self.library.report_error( f"Getting source information for keyword '{self.name}' failed: {err}", err.details) source = None if source and ':' in source and source.rsplit(':', 1)[1].isdigit(): source, lineno = source.rsplit(':', 1) lineno = int(lineno) else: lineno = -1 return normpath(source) if source else self.library.source, lineno
def _process_value(self, name, value): if name in ['Name', 'Doc', 'LogTitle', 'ReportTitle', 'SummaryTitle']: return value.replace('_', ' ') if name in ['Metadata', 'TagDoc']: return [v.replace('_', ' ') for v in value] if name in ['Include', 'Exclude', 'TagStatCombine']: return [item.replace('AND', '&') for item in value] if name in self._optional_outputs and utils.eq(value, 'NONE'): return 'NONE' if name == 'OutputDir': return utils.normpath(value) if name in ['SplitOutputs', 'SuiteStatLevel', 'MonitorWidth']: return self._convert_to_integer(name, value) if name in ['Listeners', 'VariableFiles']: return [self._split_args_from_name(item) for item in value] if name == 'TagStatLink': return self._process_tag_stat_link(value) if name == 'RemoveKeywords': return value.upper() if name == 'MonitorColors': return (utils.eq(value, 'ON') and os.sep == '/') \ or utils.eq(value, 'FORCE') return value
def _process_value(self, name, value): if name in ['Name', 'Doc', 'LogTitle', 'ReportTitle', 'SummaryTitle']: return value.replace('_', ' ') if name in ['Metadata', 'TagDoc']: return [v.replace('_', ' ') for v in value] if name in ['Include', 'Exclude', 'TagStatCombine']: return [item.replace('AND', '&') for item in value] if name in self._optional_outputs and utils.eq(value, 'NONE'): return 'NONE' if name == 'OutputDir': return utils.normpath(value) if name in ['SplitOutputs', 'SuiteStatLevel', 'MonitorWidth']: return self._convert_to_integer(name, value) if name in ['Listeners', 'VariableFiles']: return [self._split_args_from_name(item) for item in value] if name == 'TagStatLink': return self._process_tag_stat_link(value) if name == 'RemoveKeywords': return value.upper() if name == 'MonitorColors': return (utils.eq(value, 'ON') and os.sep == '/') \ or utils.eq(value, 'FORCE') return value
def source(self): handler = self.current_handler() try: return normpath(inspect.getsourcefile(unwrap(handler))) except TypeError: return self.library.source
def TestSuite(datasources, settings): datasources = [ utils.normpath(path) for path in datasources ] suite = _get_suite(datasources, settings['SuiteNames']) suite.set_options(settings) _check_suite_contains_tests(suite) return suite
import copy import os import unittest from os.path import dirname, join import shutil from robot.utils.asserts import assert_raises_with_msg from robot.utils import normpath from robot.version import get_version ROBOT_VERSION = get_version() from mabot.model import io from mabot.model.model import DATA_MODIFIED DATA_FOLDER = normpath(join( dirname(__file__), 'data', )) SUITES_FOLDER = normpath(join(DATA_FOLDER, 'suites')) SUITES_FOLDER_WITH_OS_SEP = SUITES_FOLDER + os.sep HTML_DATASOURCE_ONLY = normpath(join(SUITES_FOLDER, 'testcases.html')) TSV_DATASOURCE_ONLY = normpath(join(SUITES_FOLDER, 'tsv_testcases.tsv')) XML_DATASOURCE_ONLY = normpath(join(SUITES_FOLDER, 'output.xml')) HTML_DATASOURCE_WITH_XML = normpath(join(SUITES_FOLDER, 'testcases2.html')) HTML_DATASOURCES_XML = normpath(join(SUITES_FOLDER, 'testcases2.xml')) INVALID_FORMAT_DATASOURCE = normpath(join(SUITES_FOLDER, 'text.inv')) NON_EXISTING_DATASOURCE = normpath(join(DATA_FOLDER, 'foo.html')) NON_EXISTING_XML = normpath(join(DATA_FOLDER, 'foo.xml')) DUPLICATE_USERKEYWORDS = normpath(join(DATA_FOLDER, 'duplicate_keywords.html')) INVALID_HTML = normpath(join(DATA_FOLDER, 'invalid.html')) INVALID_XML = normpath(join(DATA_FOLDER, 'invalid.xml')) VALID_HTML_INVALID_XML_DATASOURCE = normpath(
def _norm_path_key(self, key): if self._is_path(key): return utils.normpath(key) if isinstance(key, tuple): return tuple(self._norm_path_key(k) for k in key) return key
def test_normpath(self): inputs = self._posix_inputs if os.sep == '/' else self._windows_inputs for inp, exp in inputs(): assert_equal(normpath(inp), exp, inp)
def test_normpath(self): for inp, exp in self._get_normpath_inputs(): assert_equal(normpath(inp), exp, inp)
def test_normpath(self): inputs = self._posix_inputs if os.sep == "/" else self._windows_inputs for inp, exp in inputs(): assert_equal(normpath(inp), exp, inp)
def test_normpath(self): for inp, exp in self._get_normpath_inputs(): assert_equal(normpath(inp), exp, inp)
def _norm_path_key(self, key): if self._is_path(key): return normpath(key, case_normalize=True) if isinstance(key, tuple): return tuple(self._norm_path_key(k) for k in key) return key
def _norm_path_key(self, key): if self._is_path(key): return normpath(key, case_normalize=True) if isinstance(key, tuple): return tuple(self._norm_path_key(k) for k in key) return key
import copy import os import unittest from os.path import dirname, join import shutil from robot.utils.asserts import assert_raises_with_msg from robot.utils import normpath from robot.version import get_version ROBOT_VERSION = get_version() from mabot.model import io from mabot.model.model import DATA_MODIFIED DATA_FOLDER = normpath(join(dirname(__file__), 'data',)) SUITES_FOLDER = normpath(join(DATA_FOLDER, 'suites')) SUITES_FOLDER_WITH_OS_SEP = SUITES_FOLDER + os.sep HTML_DATASOURCE_ONLY = normpath(join(SUITES_FOLDER, 'testcases.html')) TSV_DATASOURCE_ONLY = normpath(join(SUITES_FOLDER, 'tsv_testcases.tsv')) XML_DATASOURCE_ONLY = normpath(join(SUITES_FOLDER, 'output.xml')) HTML_DATASOURCE_WITH_XML = normpath(join(SUITES_FOLDER, 'testcases2.html')) HTML_DATASOURCES_XML = normpath(join(SUITES_FOLDER, 'testcases2.xml')) INVALID_FORMAT_DATASOURCE = normpath(join(SUITES_FOLDER, 'text.inv')) NON_EXISTING_DATASOURCE = normpath(join(DATA_FOLDER, 'foo.html')) NON_EXISTING_XML = normpath(join(DATA_FOLDER, 'foo.xml')) DUPLICATE_USERKEYWORDS = normpath(join(DATA_FOLDER, 'duplicate_keywords.html')) INVALID_HTML = normpath(join(DATA_FOLDER, 'invalid.html')) INVALID_XML = normpath(join(DATA_FOLDER, 'invalid.xml')) VALID_HTML_INVALID_XML_DATASOURCE = normpath(join(DATA_FOLDER, 'valid_html_invalid_xml.html')) VALID_HTML_INVALID_XML_XML = normpath(join(DATA_FOLDER, 'valid_html_invalid_xml.xml'))
def _norm_path_key(self, key): if self._is_path(key): return utils.normpath(key) if isinstance(key, tuple): return tuple(self._norm_path_key(k) for k in key) return key
def _norm_path_key(self, key): if isinstance(key, tuple): return tuple(self._norm_path_key(k) for k in key) if isinstance(key, basestring) and os.path.exists(key): return utils.normpath(key) return key
diff.serialize() print "Report: %s" % diff.close() def _process_args(cliargs): ap = utils.ArgumentParser(__doc__, arg_limits=(2, sys.maxint)) try: opts, paths = ap.parse_args(cliargs, unescape='escape', help='help', check_args=True) except Information, msg: exit(msg=str(msg)) except DataError, err: exit(error=str(err)) return opts, [utils.normpath(path) for path in paths] def _get_names(names, paths): if len(names) == 0: return [None] * len(paths) if len(names) == len(paths): return names exit(error="Different number of names (%d) and inputs (%d)" % (len(names), len(paths))) def exit(rc=0, error=None, msg=None): if error: print error, "\n\nUse '--help' option to get usage information." if rc == 0:
def TestSuite(datasources, settings): datasources = [utils.normpath(path) for path in datasources] suite = _get_suite(datasources, settings['SuiteNames']) suite.set_options(settings) _check_suite_contains_tests(suite) return suite