Exemple #1
0
 def test_robot_and_rebot_settings_are_independent_2(self):
     # https://github.com/robotframework/robotframework/pull/2438
     rebot = RebotSettings()
     assert_equal(rebot['TestNames'], [])
     robot = RobotSettings()
     robot['TestNames'].extend(['test1', 'test2'])
     assert_equal(rebot['TestNames'], [])
 def test_output_files_as_none_object(self):
     for name in 'Output', 'Report', 'Log', 'XUnit', 'DebugFile':
         attr = (name[:-4] if name.endswith('File') else name).lower()
         settings = RobotSettings({name.lower(): None})
         assert_equals(settings[name], None)
         if hasattr(settings, attr):
             assert_equals(getattr(settings, attr), None)
 def _verify_log_level(self, input, level=None, default=None):
     level = level or input
     default = default or level
     self._verify_log_levels(RobotSettings({'loglevel': input}), level,
                             default)
     self._verify_log_levels(RebotSettings({'loglevel': input}), level,
                             default)
 def test_pythonpath(self):
     curdir = normpath(dirname(abspath(__file__)))
     for inp, exp in [
         ('foo', [abspath('foo')]),
         (['a:b:c', 'zap'], [abspath(p) for p in ('a', 'b', 'c', 'zap')]),
         (['foo;bar', 'zap'], [abspath(p) for p in ('foo', 'bar', 'zap')]),
         (join(curdir, 't*_set*.??'), [join(curdir, 'test_settings.py')])
     ]:
         assert_equal(RobotSettings(pythonpath=inp).pythonpath, exp)
     if WINDOWS:
         assert_equal(
             RobotSettings(pythonpath=r'c:\temp:d:\e\f:g').pythonpath,
             [r'c:\temp', r'd:\e\f', abspath('g')])
         assert_equal(
             RobotSettings(pythonpath=r'c:\temp;d:\e\f;g').pythonpath,
             [r'c:\temp', r'd:\e\f', abspath('g')])
Exemple #5
0
    def _send_pid(self):
        self._send_socket("start agent", "")
        self._send_socket("pid", os.getpid())
        variables = {}
        try:
            try:
                from robot.variables import GLOBAL_VARIABLES
                variables = GLOBAL_VARIABLES
            except ImportError:  # for robot >2.9
                from robot.conf.settings import RobotSettings
                from robot.variables.scopes import GlobalVariables
                variables = GlobalVariables(RobotSettings()).as_dict()

            data = {}
            for k in variables.keys():
                if not (k.startswith('${') or k.startswith('@{')):
                    key = '${' + k + '}'
                else:
                    key = k
                data[key] = str(variables[k])
            self._send_socket('global_vars', 'global_vars', data)
        except Exception as e:
            self.print_error_message(
                'Global variables sending error: ' + str(e) + ' Global variables: ' + str(variables))
            pass
 def test_output_files_as_pathlib_objects(self):
     for name in 'Output.xml', 'Report.html', 'Log.html', 'XUnit.xml', 'DebugFile.txt':
         name, ext = name.split('.')
         expected = abspath(f'test.{ext}')
         attr = (name[:-4] if name.endswith('File') else name).lower()
         settings = RobotSettings({name.lower(): Path('test')})
         assert_equal(settings[name], expected)
         if hasattr(settings, attr):
             assert_equal(getattr(settings, attr), expected)
Exemple #7
0
        def main(self, datasources, **options):
            # copied from robot.run.RobotFramework.main
            settings = RobotSettings(options)
            suite = TestSuiteBuilder(
                settings['SuiteNames'],
                settings['WarnOnSkipped']).build(*datasources)
            suite.configure(**settings.suite_config)

            return suite
 def test_get_rebot_settings_excludes_settings_handled_already_in_execution(
         self):
     settings = RobotSettings(name='N',
                              doc=':doc:',
                              metadata='m:d',
                              settag='s',
                              include='i',
                              exclude='e',
                              test='t',
                              suite='s',
                              output='out.xml',
                              loglevel='DEBUG:INFO',
                              timestampoutputs=True).get_rebot_settings()
     for name in 'Name', 'Doc', 'Output':
         assert_equal(settings[name], None)
     for name in 'Metadata', 'SetTag', 'Include', 'Exclude', 'TestNames', 'SuiteNames':
         assert_equal(settings[name], [])
     assert_equal(settings['LogLevel'], 'TRACE')
     assert_equal(settings['TimestampOutputs'], False)
    def _send_global_variables(self):
        variables = {}
        try:
            try:
                from robot.variables import GLOBAL_VARIABLES
                variables = GLOBAL_VARIABLES
            except ImportError:  # for robot >2.9
                from robot.conf.settings import RobotSettings
                from robot.variables.scopes import GlobalVariables
                variables = GlobalVariables(RobotSettings()).as_dict()

            data = {}
            for key in variables.keys():
                new_key = '${' + key + '}' if not key.startswith(
                    '${') and not key.startswith('@{') else key
                data[new_key] = str(variables[key])
            self._send_to_server('global_vars', 'global_vars', data)
        except Exception as e:
            self._print_error_message('Global variables sending error: ' +
                                      str(e) + ' Global variables: ' +
                                      str(variables))
 def test_robot_and_rebot_settings_are_independent(self):
     # https://github.com/robotframework/robotframework/issues/881
     orig_opts = RobotSettings()._opts
     RebotSettings()
     assert_equals(RobotSettings()._opts, orig_opts)
Exemple #11
0
 def test_robot_settings_are_independent(self):
     settings1 = RobotSettings()
     assert_equal(settings1['Include'], [])
     settings2 = RobotSettings()
     settings2['Include'].append('tag')
     assert_equal(settings1['Include'], [])
 def test_doc_from_file(self):
     for doc in __file__, Path(__file__):
         doc = RobotSettings({'doc': doc})['Doc']
         assert_true('def test_doc_from_file(self):' in doc)
 def test_output_dir_as_pathlib_object(self):
     assert_equal(
         RobotSettings({'outputdir': Path('.')})['OutputDir'], abspath('.'))
 def test_get_rebot_settings_returns_only_rebot_settings(self):
     expected = RebotSettings()
     for opt in RobotSettings().get_rebot_settings()._opts:
         assert_true(opt in expected, opt)
 def test_robot_and_rebot_settings_are_independent(self):
     # http://code.google.com/p/robotframework/issues/detail?id=881
     orig_opts = RobotSettings()._opts
     RebotSettings()
     assert_equals(RobotSettings()._opts, orig_opts)
 def test_extra_options(self):
     assert_equals(RobotSettings(name='My Name')['Name'], 'My Name')
     assert_equals(
         RobotSettings({'name': 'Override'}, name='Set')['Name'], 'Set')
 def test_multi_options_as_single_string(self):
     assert_equals(RobotSettings({'test': 'one'})['TestNames'], ['one'])
     assert_equals(RebotSettings({'exclude': 'two'})['Exclude'], ['two'])
 def test_rerun_failed_as_none_string_and_object(self):
     for name in 'ReRunFailed', 'ReRunFailedSuites':
         assert_equal(RobotSettings({name.lower(): 'NONE'})[name], None)
         assert_equal(RobotSettings({name.lower(): 'NoNe'})[name], None)
         assert_equal(RobotSettings({name.lower(): None})[name], None)
 def test_default_log_level(self):
     self._verify_log_levels(RobotSettings(), 'INFO')
     self._verify_log_levels(RebotSettings(), 'TRACE')
 def test_rerun_failed_as_pathlib_object(self):
     for name in 'ReRunFailed', 'ReRunFailedSuites':
         assert_equal(
             RobotSettings({name.lower(): Path('R.xml')})[name], 'R.xml')
Exemple #21
0
def get_global_variables():
    import robot
    import tempfile
    import os
    # Global variables copied from robot.variables.__init__.py
    global_variables = {
        '${TEMPDIR}': os.path.normpath(tempfile.gettempdir()),
        '${EXECDIR}': '',
        '${/}': os.sep,
        '${:}': os.pathsep,
        '${SPACE}': ' ',
        '${EMPTY}': '',
        '@{EMPTY}': [],
        '${True}': True,
        '${False}': False,
        '${None}': None,
        '${null}': None,
        '${OUTPUT_DIR}': '',
        '${OUTPUT_FILE}': '',
        '${SUMMARY_FILE}': '',
        '${REPORT_FILE}': '',
        '${LOG_FILE}': '',
        '${DEBUG_FILE}': '',
        '${PREV_TEST_NAME}': '',
        '${PREV_TEST_STATUS}': '',
        '${PREV_TEST_MESSAGE}': '',
        '${CURDIR}': '.',
        '${TEST_NAME}': '',
        '${TEST_DOCUMENTATION}': '',
        '@{TEST_TAGS}': [],
        '${TEST_STATUS}': '',
        '${TEST_MESSAGE}': '',
        '${SUITE_NAME}': '',
        '${SUITE_SOURCE}': '',
        '${SUITE_STATUS}': '',
        '${SUITE_MESSAGE}': '',
        '${SUITE_DOCUMENTATION}': '',
        '${KEYWORD_MESSAGE}': '',
        '${KEYWORD_STATUS}': ''
    }

    glob_variables = {}
    try:
        from robot.variables import GLOBAL_VARIABLES

        glob_variables = GLOBAL_VARIABLES
    except ImportError:  # for robot >2.9
        global_variables['&{EMPTY}'] = {}
        global_variables['&{SUITE_METADATA}'] = {}
        from robot.conf.settings import RobotSettings
        from robot.variables.scopes import GlobalVariables

        glob_variables = GlobalVariables(RobotSettings()).as_dict()
        glob_variables['${OUTPUT_DIR}'] = ''
        glob_variables['${EXECDIR}'] = ''
        glob_variables['${OUTPUT_FILE}'] = ''
        glob_variables['${REPORT_FILE}'] = ''
        glob_variables['${LOG_FILE}'] = ''

    data = {
        _wrap_variable_if_needed(key): value
        for key, value in glob_variables.items()
    }

    for k in global_variables:
        if not k in data:
            data[k] = global_variables[k]
    return data
 def test_doc(self):
     assert_equal(RobotSettings()['Doc'], None)
     assert_equal(RobotSettings({'doc': None})['Doc'], None)
     assert_equal(RobotSettings({'doc': 'The doc!'})['Doc'], 'The doc!')