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)
Пример #2
0
 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)
Пример #3
0
 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
Пример #4
0
 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
Пример #5
0
 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
Пример #7
0
 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 = {}
Пример #8
0
 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)
Пример #9
0
 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)
Пример #10
0
    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
Пример #11
0
    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
Пример #12
0
 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
Пример #13
0
 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
Пример #14
0
 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
Пример #15
0
 def source(self):
     handler = self.current_handler()
     try:
         return normpath(inspect.getsourcefile(unwrap(handler)))
     except TypeError:
         return self.library.source
Пример #16
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
Пример #17
0
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(
Пример #18
0
 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
Пример #19
0
 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)
Пример #20
0
 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)
Пример #22
0
 def test_normpath(self):
     for inp, exp in self._get_normpath_inputs():
         assert_equal(normpath(inp), exp, inp)
Пример #23
0
 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
Пример #24
0
 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
Пример #25
0
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'))
Пример #26
0
 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
Пример #28
0
    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:
Пример #29
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