├── utest
├── __init__.py
├── resources
│ ├── read-only.cfg
│ ├── robotdata
│ │ ├── var_file_variables
│ │ │ ├── myvars.py
│ │ │ ├── res
│ │ │ │ └── res.robot
│ │ │ └── import_resource_with_variable_from_var_file.robot
│ │ ├── all_files
│ │ │ ├── .hidden_file.robot
│ │ │ ├── somefile.bla
│ │ │ ├── unused_resource.robot
│ │ │ ├── _hidden_resource.tsv
│ │ │ ├── resource_dir
│ │ │ │ └── unused.robot
│ │ │ ├── .hidden
│ │ │ │ └── should_not_be_visible.robot
│ │ │ ├── suite2_dir
│ │ │ │ └── suite2.robot
│ │ │ ├── suite_dir
│ │ │ │ ├── __init__.robot
│ │ │ │ └── suite.robot
│ │ │ └── used_resource.robot
│ │ ├── imports
│ │ │ ├── vars
│ │ │ │ └── vars.py
│ │ │ ├── res
│ │ │ │ ├── with_variable.robot
│ │ │ │ └── existing.robot
│ │ │ ├── libs
│ │ │ │ ├── existing.py
│ │ │ │ └── corrupted.py
│ │ │ ├── subsuite
│ │ │ │ ├── suit.robot
│ │ │ │ └── __init__.robot
│ │ │ ├── outer_lib.py
│ │ │ └── testsuite.robot
│ │ ├── resources
│ │ │ ├── varz.py
│ │ │ ├── more_varz.py
│ │ │ ├── resu.robot
│ │ │ ├── more_resources
│ │ │ │ ├── even_more_varz.py
│ │ │ │ ├── even_more_resources.robot
│ │ │ │ └── resource4.robot
│ │ │ ├── res_var_file.py
│ │ │ ├── resource_from_resource_with_variable.robot
│ │ │ ├── resource_lib_imports.robot
│ │ │ ├── dynamic_varz.py
│ │ │ ├── resource3.robot
│ │ │ ├── resource.robot
│ │ │ ├── another_resource.robot
│ │ │ ├── resource_with_variables.robot
│ │ │ ├── resource2.robot
│ │ │ ├── external_res.resource
│ │ │ └── resource.resource
│ │ ├── test_project
│ │ │ ├── empty_project_settings
│ │ │ │ ├── .robot
│ │ │ │ │ └── .gitkeep
│ │ │ │ └── minimal.robot
│ │ │ ├── with_project_settings_two
│ │ │ │ ├── subproject_empty_project_settings
│ │ │ │ │ ├── .robot
│ │ │ │ │ │ └── .gitkeep
│ │ │ │ │ └── minimal.robot
│ │ │ │ ├── minimal.robot
│ │ │ │ ├── subproject_no_project_settings
│ │ │ │ │ └── minimal.robot
│ │ │ │ └── subproject_with_project_settings
│ │ │ │ │ └── minimal.robot
│ │ │ ├── no_project_settings
│ │ │ │ └── minimal.robot
│ │ │ └── with_project_settings_one
│ │ │ │ └── minimal.robot
│ │ ├── relative_imports
│ │ │ ├── local.py
│ │ │ └── relative.robot
│ │ ├── TestCases
│ │ │ ├── mykw.py
│ │ │ ├── Sub
│ │ │ │ ├── Lib
│ │ │ │ │ ├── mykw.py
│ │ │ │ │ ├── res2.py
│ │ │ │ │ ├── MyListener.py
│ │ │ │ │ └── SubMyListener.py
│ │ │ │ ├── resources
│ │ │ │ │ ├── res.py
│ │ │ │ │ └── res02.resource
│ │ │ │ ├── suite02.robot
│ │ │ │ └── Suite01.robot
│ │ │ ├── resources
│ │ │ │ ├── res.py
│ │ │ │ └── res01.resource
│ │ │ └── suite01.robot
│ │ ├── lib with spaces
│ │ │ └── spacelib.py
│ │ ├── libs
│ │ │ ├── sub
│ │ │ │ └── libsi.py
│ │ │ ├── AnotherArgLib.py
│ │ │ ├── TestLib.py
│ │ │ ├── ArgLib.py
│ │ │ ├── OldStyleLibSpecLibrary.xml
│ │ │ └── LibSpecLibrary.xml
│ │ ├── unused_keywords
│ │ │ ├── Abc.robot
│ │ │ ├── foobar.robot
│ │ │ ├── Res1.robot
│ │ │ ├── Test_suite_1.robot
│ │ │ └── Test_suite_2.robot
│ │ ├── testsuite
│ │ │ ├── subsuite
│ │ │ │ ├── test.robot
│ │ │ │ └── __init__.tsv
│ │ │ ├── invalid.robot
│ │ │ ├── minimal.robot
│ │ │ ├── resuja
│ │ │ │ ├── resource.robot
│ │ │ │ └── resource.resource
│ │ │ └── spec_resource.xml
│ │ ├── language
│ │ │ ├── en
│ │ │ │ ├── full_en.json
│ │ │ │ ├── full_en.py
│ │ │ │ ├── full_en.yaml
│ │ │ │ ├── gherkin_en.robot
│ │ │ │ └── __init__.robot
│ │ │ ├── pt
│ │ │ │ ├── full_pt.json
│ │ │ │ ├── full_pt.py
│ │ │ │ ├── full_pt.yaml
│ │ │ │ ├── gherkin_pt.robot
│ │ │ │ └── __init__.robot
│ │ │ ├── preamble_unknown_lang.robot
│ │ │ └── preamble_no_lang.robot
│ │ ├── findwhereused_variables
│ │ │ ├── vars.py
│ │ │ ├── Suite_2.robot
│ │ │ ├── Res1.robot
│ │ │ └── Suite_1.robot
│ │ ├── logmanysuite
│ │ │ └── log_many.robot
│ │ ├── external_resources_unsorted
│ │ │ ├── external_resources
│ │ │ │ ├── subdirectory
│ │ │ │ │ └── Foo.robot
│ │ │ │ └── subdirectory2
│ │ │ │ │ ├── subsubdirectory
│ │ │ │ │ ├── Abc.robot
│ │ │ │ │ └── hello.robot
│ │ │ │ │ ├── bar.robot
│ │ │ │ │ └── Resource.robot
│ │ │ └── suite
│ │ │ │ └── Suite1.robot
│ │ ├── small_test
│ │ │ └── test.robot
│ │ ├── simple_testsuite_with_different_namespaces
│ │ │ ├── resources
│ │ │ │ └── inner_resource.robot
│ │ │ ├── resources_folder
│ │ │ │ └── inner_resource2.robot
│ │ │ ├── TestSuite3.robot
│ │ │ ├── testdata_resource.robot
│ │ │ ├── TestSuite1.robot
│ │ │ └── TestSuite2.robot
│ │ ├── arguments_suite
│ │ │ ├── libi.py
│ │ │ └── Suite.robot
│ │ ├── txt_only_test_suite
│ │ │ ├── another_test_suite.robot
│ │ │ └── test_suite.robot
│ │ ├── put_into_python_path
│ │ │ ├── PathResource.robot
│ │ │ └── TestLib.xml
│ │ ├── simple
│ │ │ └── test.robot
│ │ ├── Embedded_arguments.robot
│ │ ├── complex_tests
│ │ │ └── TestSuite.robot
│ │ ├── lib_with_doc_format
│ │ │ ├── testLibText.py
│ │ │ ├── testLibRobot.py
│ │ │ ├── testLibHtml.py
│ │ │ ├── testLibRest.py
│ │ │ └── testLibHtmlClass.py
│ │ └── Example.robot
│ ├── settings2.cfg
│ └── user2.cfg
├── application
│ ├── plugins_for_loader
│ │ ├── .#invalidmodule.py
│ │ ├── not_plugin.py
│ │ ├── also_plugins.py
│ │ └── plugin_module.py
│ └── __init__.py
├── zulu_misc
│ ├── conf.ini
│ ├── conf.spec
│ └── conftest.py
├── action
│ └── __init__.py
├── run
│ ├── __init__.py
│ └── process_test_scripts.py
├── ui
│ └── __init__.py
├── utils
│ ├── __init__.py
│ └── test_htmlformat.py
├── contrib
│ ├── __init__.py
│ └── testrunner
│ │ ├── __init__.py
│ │ └── test_settings_parser.py
├── namespace
│ ├── __init__.py
│ └── test_expiring_cache.py
├── plugin
│ └── __init__.py
├── publish
│ └── __init__.py
├── settings
│ └── __init__.py
├── usages
│ └── __init__.py
├── validators
│ └── __init__.py
├── controller
│ ├── ui
│ │ └── __init__.py
│ └── __init__.py
├── preferences
│ └── __init__.py
├── searchtests
│ └── __init__.py
├── spec
│ ├── __init__.py
│ └── Exceptional.py
├── editor
│ ├── __init__.py
│ └── fakeplugin.py
└── language
│ └── __init__.py
├── .gitattributes
├── src
├── robotide
│ ├── lib
│ │ ├── __init__.py
│ │ ├── robot-commit
│ │ ├── robot
│ │ │ ├── htmldata
│ │ │ │ ├── libdoc
│ │ │ │ │ └── print.css
│ │ │ │ ├── testdoc
│ │ │ │ │ └── testdoc.css
│ │ │ │ ├── common
│ │ │ │ │ ├── js_disabled.css
│ │ │ │ │ ├── storage.js
│ │ │ │ │ └── doc_formatting.css
│ │ │ │ ├── testdata
│ │ │ │ │ ├── dir.suite
│ │ │ │ │ │ ├── test.suite.1.robot
│ │ │ │ │ │ └── test.suite.2.robot
│ │ │ │ │ ├── create_libdoc_data.py
│ │ │ │ │ └── create_testdoc_data.py
│ │ │ │ ├── template.py
│ │ │ │ ├── rebot
│ │ │ │ │ └── print.css
│ │ │ │ ├── lib
│ │ │ │ │ └── versions.txt
│ │ │ │ ├── __init__.py
│ │ │ │ └── normaltemplate.py
│ │ │ ├── parsing
│ │ │ │ └── txtreader.py
│ │ │ ├── output
│ │ │ │ ├── __init__.py
│ │ │ │ └── console
│ │ │ │ │ ├── quiet.py
│ │ │ │ │ └── __init__.py
│ │ │ ├── __main__.py
│ │ │ ├── libdocpkg
│ │ │ │ ├── writer.py
│ │ │ │ └── output.py
│ │ │ ├── result
│ │ │ │ └── messagefilter.py
│ │ │ ├── writer
│ │ │ │ └── __init__.py
│ │ │ ├── running
│ │ │ │ ├── arguments
│ │ │ │ │ └── __init__.py
│ │ │ │ └── timeouts
│ │ │ │ │ └── posix.py
│ │ │ ├── variables
│ │ │ │ └── __init__.py
│ │ │ ├── libraries
│ │ │ │ ├── Easter.py
│ │ │ │ └── Reserved.py
│ │ │ ├── utils
│ │ │ │ ├── robotinspect.py
│ │ │ │ ├── platform.py
│ │ │ │ └── robotenv.py
│ │ │ ├── conf
│ │ │ │ └── __init__.py
│ │ │ ├── reporting
│ │ │ │ ├── __init__.py
│ │ │ │ └── outputwriter.py
│ │ │ └── model
│ │ │ │ ├── metadata.py
│ │ │ │ └── tagsetter.py
│ │ └── compat
│ │ │ ├── parsing
│ │ │ ├── validator.py
│ │ │ └── __init__.py
│ │ │ ├── __init__.py
│ │ │ └── pygments
│ │ │ └── __init__.py
│ ├── postinstall
│ │ ├── RIDE.app
│ │ │ └── Contents
│ │ │ │ ├── PkgInfo
│ │ │ │ ├── Resources
│ │ │ │ ├── RIDEEditor.icns
│ │ │ │ ├── RIDEEditorOpaque.icns
│ │ │ │ ├── RIDEEditorWhite.icns
│ │ │ │ ├── RIDEEditorCropped.icns
│ │ │ │ ├── RIDEEditorWhiteOpaque.icns
│ │ │ │ └── RIDEEditorWhiteCropped.icns
│ │ │ │ └── MacOS
│ │ │ │ └── RIDE
│ │ └── __main__.py
│ ├── widgets
│ │ ├── Kw32.png
│ │ ├── T32.png
│ │ ├── cog.png
│ │ ├── dollar.png
│ │ ├── folder.png
│ │ ├── report.png
│ │ ├── robot.ico
│ │ ├── robot.png
│ │ ├── switch.png
│ │ ├── wrench.png
│ │ ├── kw_search.png
│ │ ├── process.png
│ │ ├── down_arrow.png
│ │ ├── page_white.png
│ │ ├── robot-pause.gif
│ │ ├── test_search.png
│ │ ├── control_pause.png
│ │ ├── control_play.png
│ │ ├── control_stop.png
│ │ ├── folder_wrench.png
│ │ ├── robot-running.gif
│ │ ├── robot_failed.png
│ │ ├── robot_passed.png
│ │ ├── robot_running.png
│ │ ├── robot_skipped.png
│ │ ├── wrench_orange.png
│ │ ├── database_refresh.png
│ │ ├── folder_excluded.png
│ │ ├── kw_search_button.png
│ │ ├── page_white_gear.png
│ │ ├── control_fastforward.png
│ │ ├── test_search_button.png
│ │ ├── robot-framework-cropped.png
│ │ ├── robot-framework-opaque.ico
│ │ ├── robot-framework-opaque.png
│ │ ├── robot-framework-white-cropped.png
│ │ ├── robot-framework-white-opaque.ico
│ │ ├── robot-framework-white-opaque.png
│ │ ├── __init__.py
│ │ ├── font.py
│ │ ├── text.py
│ │ └── label.py
│ ├── localization
│ │ ├── bg_BG
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── bs_BA
│ │ │ └── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ ├── cs_CZ
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── da_DK
│ │ │ └── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ ├── de_DE
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── en_US
│ │ │ └── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ ├── es_ES
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── fi_FI
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── fr_FR
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── hi_IN
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── hu_HU
│ │ │ └── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ ├── it_IT
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── ja_JP
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── ko_KR
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── nl_NL
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── pl_PL
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── pt_BR
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── pt_PT
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── ro_RO
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── ru_RU
│ │ │ └── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ ├── sv_SE
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── th_TH
│ │ │ └── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ ├── tr_TR
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── uk_UA
│ │ │ └── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ ├── vi_VN
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── zh_CN
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── zh_TW
│ │ │ ├── LC_MESSAGES
│ │ │ │ └── RIDE.mo
│ │ │ └── restore_keywords.json
│ │ ├── TRANSLATORS.adoc
│ │ └── __init__.py
│ ├── usages
│ │ └── __init__.py
│ ├── parserlog
│ │ └── __init__.py
│ ├── searchtests
│ │ └── __init__.py
│ ├── publish
│ │ └── htmlmessages
│ │ │ ├── __init__.py
│ │ │ └── no_robot.html
│ ├── contrib
│ │ ├── __init__.py
│ │ └── testrunner
│ │ │ └── __init__.py
│ ├── namespace
│ │ ├── __init__.py
│ │ └── embeddedargs.py
│ ├── run
│ │ └── __init__.py
│ ├── recentfiles
│ │ └── __init__.py
│ ├── version.py
│ ├── controller
│ │ ├── ui
│ │ │ └── __init__.py
│ │ └── __init__.py
│ ├── spec
│ │ └── __init__.py
│ ├── log
│ │ └── __init__.py
│ ├── application
│ │ ├── __init__.py
│ │ └── debugconsole.py
│ ├── editor
│ │ └── formatters.py
│ ├── ui
│ │ ├── __init__.py
│ │ └── searchdots.py
│ ├── __main__.py
│ └── utils
│ │ ├── printing.py
│ │ └── versioncomparator.py
└── bin
│ ├── ride.py
│ └── ride_postinstall.py
├── robot.bmp
├── doc
└── other
│ ├── example_maven_runner
│ ├── RIDE_output.png
│ └── runTests.bat
│ └── example_pabot_runner
│ ├── RIDE_output.png
│ └── pabotRunner.bat
├── pytest.ini
├── .gitmodules
├── .whitesource
├── rtest
├── testdir
│ ├── __init__.robot
│ ├── resources
│ │ └── resu.txt
│ └── Suite.robot
└── __init__.py
├── requirements.txt
├── crowdin.yml
├── .gitignore
├── tox.ini
├── setup.cfg
├── MANIFEST.in
├── sonar-project.properties
├── requirements-dev.txt
├── COPYRIGHT.txt
├── AUTHORS.txt
├── .coveragerc
├── tools
└── create_icon.sh
└── test_all.sh
/utest/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
--------------------------------------------------------------------------------
/src/robotide/lib/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/robotide/postinstall/RIDE.app/Contents/PkgInfo:
--------------------------------------------------------------------------------
1 | APPLRIDE
--------------------------------------------------------------------------------
/utest/resources/read-only.cfg:
--------------------------------------------------------------------------------
1 | foo = 'bar'
2 | hello = 'world'
3 |
--------------------------------------------------------------------------------
/robot.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/robot.bmp
--------------------------------------------------------------------------------
/utest/resources/robotdata/var_file_variables/myvars.py:
--------------------------------------------------------------------------------
1 | from_my_var = 'res'
--------------------------------------------------------------------------------
/utest/resources/robotdata/all_files/.hidden_file.robot:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/imports/vars/vars.py:
--------------------------------------------------------------------------------
1 | _VARIABLE = 'VALUE'
2 |
3 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/resources/varz.py:
--------------------------------------------------------------------------------
1 | var_from_file = 'Some value'
2 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/test_project/empty_project_settings/.robot/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/robotide/lib/robot-commit:
--------------------------------------------------------------------------------
1 | 6197f94db6c2a614526ce41563c882c5bcf4821d
2 |
3 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/all_files/somefile.bla:
--------------------------------------------------------------------------------
1 | dslkdslkdldsak
2 | dslöaldkl
3 |
--------------------------------------------------------------------------------
/utest/application/plugins_for_loader/.#invalidmodule.py:
--------------------------------------------------------------------------------
1 | Some invalid content
2 |
3 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/relative_imports/local.py:
--------------------------------------------------------------------------------
1 | def local():
2 | print('Hello')
--------------------------------------------------------------------------------
/utest/resources/robotdata/resources/more_varz.py:
--------------------------------------------------------------------------------
1 | varfrommorevarz = {'key': 'value'}
2 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/resources/resu.robot:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 | Resu UK No Operation
--------------------------------------------------------------------------------
/utest/resources/robotdata/TestCases/mykw.py:
--------------------------------------------------------------------------------
1 | def my_kw():
2 | print('kw from root folder')
3 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/lib with spaces/spacelib.py:
--------------------------------------------------------------------------------
1 | def space_lib_function():
2 | pass
3 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/resources/more_resources/even_more_varz.py:
--------------------------------------------------------------------------------
1 | var_in_resource2 = "Foo"
2 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/resources/res_var_file.py:
--------------------------------------------------------------------------------
1 | var_from_resource_var_file = 'Some Value'
2 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/all_files/unused_resource.robot:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 | KW
3 | Log 123
4 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/imports/res/with_variable.robot:
--------------------------------------------------------------------------------
1 | *** Variables ***
2 | ${SOME} variable
3 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/libs/sub/libsi.py:
--------------------------------------------------------------------------------
1 | def libsi_keyword():
2 | print('libsi keyword')
3 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/unused_keywords/Abc.robot:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 | Another keyword
3 |
4 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/TestCases/Sub/Lib/mykw.py:
--------------------------------------------------------------------------------
1 | def my_kw():
2 | print('kw from sub folder')
3 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/TestCases/resources/res.py:
--------------------------------------------------------------------------------
1 | def res_kw():
2 | print('kw from res folder')
3 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/all_files/_hidden_resource.tsv:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 | kw
3 | No Operation
4 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/all_files/resource_dir/unused.robot:
--------------------------------------------------------------------------------
1 | *** Variables ***
2 | ${a} 3
3 | ${b} 4
4 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/imports/libs/existing.py:
--------------------------------------------------------------------------------
1 | def keyword():
2 | print('this is a keyword')
3 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/imports/res/existing.robot:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 | Hello World
3 | Log moi
4 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/imports/subsuite/suit.robot:
--------------------------------------------------------------------------------
1 | *** Test Cases ***
2 | test
3 | No Operation
4 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/resources/more_resources/even_more_resources.robot:
--------------------------------------------------------------------------------
1 | *Keywords*
2 | Foo Bar
3 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/testsuite/subsuite/test.robot:
--------------------------------------------------------------------------------
1 | *** Test Cases ***
2 | Test Case
3 | No Operation
--------------------------------------------------------------------------------
/src/robotide/widgets/Kw32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/Kw32.png
--------------------------------------------------------------------------------
/src/robotide/widgets/T32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/T32.png
--------------------------------------------------------------------------------
/src/robotide/widgets/cog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/cog.png
--------------------------------------------------------------------------------
/utest/resources/robotdata/TestCases/Sub/Lib/res2.py:
--------------------------------------------------------------------------------
1 | def res_kw_2():
2 | print('kw from sub res folder')
3 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/TestCases/Sub/resources/res.py:
--------------------------------------------------------------------------------
1 | def res_kw():
2 | print('kw from res folder')
3 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/all_files/.hidden/should_not_be_visible.robot:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 | Foo
3 | bar
4 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/all_files/suite2_dir/suite2.robot:
--------------------------------------------------------------------------------
1 | *** Test Cases ***
2 | Noop
3 | Log nooop
4 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/all_files/suite_dir/__init__.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Library OperatingSystem
3 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/imports/outer_lib.py:
--------------------------------------------------------------------------------
1 | def this_is_the_outer_lib():
2 | print('For imports test')
3 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/imports/subsuite/__init__.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Library ..//outer_lib.py
3 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/language/en/full_en.json:
--------------------------------------------------------------------------------
1 | {
2 | "simple":"one",
3 | "secondary":1234
4 | }
5 |
6 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/language/pt/full_pt.json:
--------------------------------------------------------------------------------
1 | {
2 | "simples":"one",
3 | "secundária":1234
4 | }
5 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/testsuite/subsuite/__init__.tsv:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Documentation A simple init file
--------------------------------------------------------------------------------
/utest/resources/robotdata/unused_keywords/foobar.robot:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 | A third unused keyword
3 |
4 |
--------------------------------------------------------------------------------
/src/robotide/widgets/dollar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/dollar.png
--------------------------------------------------------------------------------
/src/robotide/widgets/folder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/folder.png
--------------------------------------------------------------------------------
/src/robotide/widgets/report.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/report.png
--------------------------------------------------------------------------------
/src/robotide/widgets/robot.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/robot.ico
--------------------------------------------------------------------------------
/src/robotide/widgets/robot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/robot.png
--------------------------------------------------------------------------------
/src/robotide/widgets/switch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/switch.png
--------------------------------------------------------------------------------
/src/robotide/widgets/wrench.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/wrench.png
--------------------------------------------------------------------------------
/utest/resources/robotdata/all_files/used_resource.robot:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 | Some Keyword
3 | Log something
4 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/findwhereused_variables/vars.py:
--------------------------------------------------------------------------------
1 | ServerHost = "localhost"
2 | ServerPort = "1337"
3 |
4 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/test_project/with_project_settings_two/subproject_empty_project_settings/.robot/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/robotide/widgets/kw_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/kw_search.png
--------------------------------------------------------------------------------
/src/robotide/widgets/process.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/process.png
--------------------------------------------------------------------------------
/utest/resources/robotdata/imports/libs/corrupted.py:
--------------------------------------------------------------------------------
1 | sdklsdjakjsa
2 | d#skladjslk,..dsalkdjs weoiqwejdskla
3 | CORRUpteD
4 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/language/en/full_en.py:
--------------------------------------------------------------------------------
1 | # Sample python variables file
2 | first = "First"
3 | second = 2
4 |
5 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/language/pt/full_pt.py:
--------------------------------------------------------------------------------
1 | # Sample python variables file
2 | primeira= "Primeira"
3 | segunda= 2
4 |
--------------------------------------------------------------------------------
/src/robotide/widgets/down_arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/down_arrow.png
--------------------------------------------------------------------------------
/src/robotide/widgets/page_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/page_white.png
--------------------------------------------------------------------------------
/src/robotide/widgets/robot-pause.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/robot-pause.gif
--------------------------------------------------------------------------------
/src/robotide/widgets/test_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/test_search.png
--------------------------------------------------------------------------------
/utest/resources/robotdata/logmanysuite/log_many.robot:
--------------------------------------------------------------------------------
1 | *** Test Cases ***
2 | Logging Test
3 | Log Many a b c d
4 |
5 |
--------------------------------------------------------------------------------
/src/robotide/widgets/control_pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/control_pause.png
--------------------------------------------------------------------------------
/src/robotide/widgets/control_play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/control_play.png
--------------------------------------------------------------------------------
/src/robotide/widgets/control_stop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/control_stop.png
--------------------------------------------------------------------------------
/src/robotide/widgets/folder_wrench.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/folder_wrench.png
--------------------------------------------------------------------------------
/src/robotide/widgets/robot-running.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/robot-running.gif
--------------------------------------------------------------------------------
/src/robotide/widgets/robot_failed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/robot_failed.png
--------------------------------------------------------------------------------
/src/robotide/widgets/robot_passed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/robot_passed.png
--------------------------------------------------------------------------------
/src/robotide/widgets/robot_running.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/robot_running.png
--------------------------------------------------------------------------------
/src/robotide/widgets/robot_skipped.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/robot_skipped.png
--------------------------------------------------------------------------------
/src/robotide/widgets/wrench_orange.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/wrench_orange.png
--------------------------------------------------------------------------------
/utest/resources/robotdata/external_resources_unsorted/external_resources/subdirectory/Foo.robot:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 | kw2
3 |
4 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/var_file_variables/res/res.robot:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 | from resource with variable in path
3 | No Operation
--------------------------------------------------------------------------------
/src/robotide/widgets/database_refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/database_refresh.png
--------------------------------------------------------------------------------
/src/robotide/widgets/folder_excluded.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/folder_excluded.png
--------------------------------------------------------------------------------
/src/robotide/widgets/kw_search_button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/kw_search_button.png
--------------------------------------------------------------------------------
/src/robotide/widgets/page_white_gear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/page_white_gear.png
--------------------------------------------------------------------------------
/src/robotide/widgets/control_fastforward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/control_fastforward.png
--------------------------------------------------------------------------------
/src/robotide/widgets/test_search_button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/test_search_button.png
--------------------------------------------------------------------------------
/doc/other/example_maven_runner/RIDE_output.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/doc/other/example_maven_runner/RIDE_output.png
--------------------------------------------------------------------------------
/doc/other/example_pabot_runner/RIDE_output.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/doc/other/example_pabot_runner/RIDE_output.png
--------------------------------------------------------------------------------
/pytest.ini:
--------------------------------------------------------------------------------
1 | [pytest]
2 | addopts = -p no:warnings --order-group-scope=module
3 | pythonpath = src src/robotide/preferences/configobj/src
4 |
5 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/language/en/full_en.yaml:
--------------------------------------------------------------------------------
1 | main_variable:
2 | secondary:
3 | "Test"
4 |
5 | secondary_variable:
6 | 1234
7 |
8 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/resources/resource_from_resource_with_variable.robot:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 | UK From Resource from Resource with Variable
3 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/testsuite/invalid.robot:
--------------------------------------------------------------------------------
1 | *** Invalid ***
2 | Invalid
3 | This file is not a valid Robot Framework test case file
4 |
--------------------------------------------------------------------------------
/src/robotide/widgets/robot-framework-cropped.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/robot-framework-cropped.png
--------------------------------------------------------------------------------
/src/robotide/widgets/robot-framework-opaque.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/robot-framework-opaque.ico
--------------------------------------------------------------------------------
/src/robotide/widgets/robot-framework-opaque.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/robot-framework-opaque.png
--------------------------------------------------------------------------------
/utest/resources/robotdata/external_resources_unsorted/external_resources/subdirectory2/subsubdirectory/Abc.robot:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 | kw2
3 |
4 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/external_resources_unsorted/external_resources/subdirectory2/subsubdirectory/hello.robot:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 | kw2
3 |
4 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/relative_imports/relative.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Library local.py
3 |
4 | *** Test Cases ***
5 | Test
6 | Local
--------------------------------------------------------------------------------
/utest/resources/robotdata/small_test/test.robot:
--------------------------------------------------------------------------------
1 | *** Test Cases ***
2 | Passing
3 | Log this passes WARN
4 |
5 | Failing
6 | Fail this fails
7 |
--------------------------------------------------------------------------------
/src/robotide/localization/bg_BG/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/bg_BG/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/bs_BA/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/bs_BA/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/cs_CZ/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/cs_CZ/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/da_DK/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/da_DK/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/de_DE/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/de_DE/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/en_US/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/en_US/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/es_ES/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/es_ES/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/fi_FI/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/fi_FI/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/fr_FR/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/fr_FR/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/hi_IN/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/hi_IN/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/hu_HU/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/hu_HU/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/it_IT/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/it_IT/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/ja_JP/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/ja_JP/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/ko_KR/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/ko_KR/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/nl_NL/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/nl_NL/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/pl_PL/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/pl_PL/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/pt_BR/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/pt_BR/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/pt_PT/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/pt_PT/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/ro_RO/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/ro_RO/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/ru_RU/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/ru_RU/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/sv_SE/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/sv_SE/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/th_TH/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/th_TH/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/tr_TR/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/tr_TR/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/uk_UA/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/uk_UA/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/vi_VN/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/vi_VN/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/zh_CN/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/zh_CN/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/src/robotide/localization/zh_TW/LC_MESSAGES/RIDE.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/localization/zh_TW/LC_MESSAGES/RIDE.mo
--------------------------------------------------------------------------------
/utest/resources/robotdata/language/pt/full_pt.yaml:
--------------------------------------------------------------------------------
1 | variável_principal:
2 | secundária:
3 | "Teste"
4 |
5 | variável_secundária:
6 | 1234
7 |
8 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/resources/resource_lib_imports.robot:
--------------------------------------------------------------------------------
1 | *** settings ***
2 | library DateTime
3 | library String
4 | resource resource.robot
5 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "src/robotide/preferences/configobj"]
2 | path = src/robotide/preferences/configobj
3 | url = https://github.com/DiffSK/configobj.git
4 |
--------------------------------------------------------------------------------
/src/robotide/widgets/robot-framework-white-cropped.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/robot-framework-white-cropped.png
--------------------------------------------------------------------------------
/src/robotide/widgets/robot-framework-white-opaque.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/robot-framework-white-opaque.ico
--------------------------------------------------------------------------------
/src/robotide/widgets/robot-framework-white-opaque.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/widgets/robot-framework-white-opaque.png
--------------------------------------------------------------------------------
/utest/resources/robotdata/simple_testsuite_with_different_namespaces/resources/inner_resource.robot:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 | Keyword In Both Resources
3 | No Operation
--------------------------------------------------------------------------------
/.whitesource:
--------------------------------------------------------------------------------
1 | {
2 | "generalSettings": {
3 | "shouldScanRepo": true
4 | },
5 | "checkRunSettings": {
6 | "vulnerableCheckRunConclusionLevel": "failure"
7 | }
8 | }
--------------------------------------------------------------------------------
/utest/resources/robotdata/all_files/suite_dir/suite.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Resource ../used_resource.robot
3 |
4 | *** Test Cases ***
5 | Some test
6 | No Operation
7 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/simple_testsuite_with_different_namespaces/resources_folder/inner_resource2.robot:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 | Keyword In Both Resources
3 | No Operation
--------------------------------------------------------------------------------
/rtest/testdir/__init__.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Documentation This is suite directory documentation
3 | Force Tags force
4 |
5 | *** Variables ***
6 | ${SCALAR} 1
7 |
8 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/resources/dynamic_varz.py:
--------------------------------------------------------------------------------
1 | def get_variables(arg='my arg'):
2 | return arg and {'dynamic var': arg, arg:'value', 'Technology Lib': 'DateTime'} or {}
3 |
--------------------------------------------------------------------------------
/src/robotide/localization/it_IT/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["Should Be True", "Should Be Vero"],
4 | ["Should Not Be True", "Should Not Be Vero"]
5 | ]
6 | }
7 |
8 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/arguments_suite/libi.py:
--------------------------------------------------------------------------------
1 | class libi(object):
2 |
3 | def __init__(self, *args):
4 | pass
5 |
6 | def onething(self):
7 | pass
8 |
9 |
--------------------------------------------------------------------------------
/utest/zulu_misc/conf.ini:
--------------------------------------------------------------------------------
1 |
2 | extra = 3
3 |
4 | [extra-section]
5 |
6 | [section]
7 | [[sub-section]]
8 | extra = 3
9 | [[extra-sub-section]]
10 | extra = 3
11 |
--------------------------------------------------------------------------------
/src/robotide/postinstall/RIDE.app/Contents/Resources/RIDEEditor.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/postinstall/RIDE.app/Contents/Resources/RIDEEditor.icns
--------------------------------------------------------------------------------
/src/robotide/localization/es_ES/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["Should Be True", "Should Be Verdadero"],
4 | ["Should Not Be True", "Should Not Be Verdadero"]
5 | ]
6 | }
7 |
8 |
--------------------------------------------------------------------------------
/src/robotide/postinstall/RIDE.app/Contents/Resources/RIDEEditorOpaque.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/postinstall/RIDE.app/Contents/Resources/RIDEEditorOpaque.icns
--------------------------------------------------------------------------------
/src/robotide/postinstall/RIDE.app/Contents/Resources/RIDEEditorWhite.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/postinstall/RIDE.app/Contents/Resources/RIDEEditorWhite.icns
--------------------------------------------------------------------------------
/utest/resources/robotdata/txt_only_test_suite/another_test_suite.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Documentation Another test suite doc
3 |
4 | *** Test Cases ***
5 | Test Case
6 | No Operation
7 |
8 |
--------------------------------------------------------------------------------
/src/robotide/postinstall/RIDE.app/Contents/Resources/RIDEEditorCropped.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/postinstall/RIDE.app/Contents/Resources/RIDEEditorCropped.icns
--------------------------------------------------------------------------------
/utest/resources/robotdata/resources/resource3.robot:
--------------------------------------------------------------------------------
1 | *** Variables ***
2 | @{RESOURCE 3 List VARIABLE} 1 2 3 4
3 |
4 | *** Keywords ***
5 | Resource3 UK
6 | [Timeout]
7 | No Operation
8 |
--------------------------------------------------------------------------------
/src/robotide/postinstall/RIDE.app/Contents/Resources/RIDEEditorWhiteOpaque.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/postinstall/RIDE.app/Contents/Resources/RIDEEditorWhiteOpaque.icns
--------------------------------------------------------------------------------
/utest/resources/robotdata/external_resources_unsorted/external_resources/subdirectory2/bar.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Resource subsubdirectory/hello.robot
3 |
4 | *** Keywords ***
5 | kw2
6 |
7 |
--------------------------------------------------------------------------------
/src/robotide/postinstall/RIDE.app/Contents/Resources/RIDEEditorWhiteCropped.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/robotframework/RIDE/HEAD/src/robotide/postinstall/RIDE.app/Contents/Resources/RIDEEditorWhiteCropped.icns
--------------------------------------------------------------------------------
/utest/resources/robotdata/resources/more_resources/resource4.robot:
--------------------------------------------------------------------------------
1 | *** Variables ***
2 | @{RESOURCE 4 List VARIABLE} 1 2 3 4
3 |
4 | *** Keywords ***
5 | Resource4 UK
6 | [Timeout]
7 | No Operation
8 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/unused_keywords/Res1.robot:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 | Do this
3 | Log Done this
4 |
5 | Do that
6 | Log Done that
7 |
8 | Not used keyword
9 | Log Done nothing
10 |
11 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/var_file_variables/import_resource_with_variable_from_var_file.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Variables myvars.py
3 | Resource ${FROM MY VAR}/res.robot
4 |
5 | *** Test Cases ***
6 | Test Case
7 | No Operation
--------------------------------------------------------------------------------
/src/robotide/lib/robot/htmldata/libdoc/print.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | padding: 0;
4 | font-size: 8pt;
5 | }
6 | a {
7 | text-decoration: none;
8 | }
9 | #search, #open-search {
10 | display: none;
11 | }
12 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/language/preamble_unknown_lang.robot:
--------------------------------------------------------------------------------
1 | # This is the preamble
2 | # Unknown language setting
3 | Language: Pirates
4 |
5 | *** Loots ***
6 | Aaarr Robb'em All
7 | No Operation
8 | Log Aditional content
9 |
--------------------------------------------------------------------------------
/doc/other/example_pabot_runner/pabotRunner.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | setlocal EnableDelayedExpansion
3 | rem Get path from first parameter
4 | set return_path=%1
5 |
6 | rem Start pabot
7 | cd /D%return_path%
8 | pabot --argumentfile %3 --listener %5 %6
--------------------------------------------------------------------------------
/utest/resources/robotdata/unused_keywords/Test_suite_1.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Resource Res1.robot
3 | Resource Abc.robot
4 |
5 | *** Test Cases ***
6 | Test case
7 | Do this
8 | Do that
9 |
10 |
--------------------------------------------------------------------------------
/src/robotide/lib/robot/htmldata/testdoc/testdoc.css:
--------------------------------------------------------------------------------
1 | #header {
2 | width: auto;
3 | margin-bottom: 2em;
4 | }
5 | .keyword .element-header {
6 | cursor: auto;
7 | background-image: none;
8 | padding-left: 0.3em;
9 | }
10 |
--------------------------------------------------------------------------------
/src/robotide/postinstall/RIDE.app/Contents/MacOS/RIDE:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | PAL=$PATH
3 | for i in `cat /etc/paths`
4 | do
5 | PAL="$PAL:$i"
6 | done
7 | PATH=$PAL
8 | export $PATH
9 | /usr/bin/python3 -m robotide $* 2> /dev/null &
10 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/external_resources_unsorted/external_resources/subdirectory2/Resource.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Resource subsubdirectory/Abc.robot
3 | Resource subsubdirectory/hello.robot
4 |
5 | *** Keywords ***
6 | kw1
7 |
8 |
--------------------------------------------------------------------------------
/utest/zulu_misc/conf.spec:
--------------------------------------------------------------------------------
1 |
2 | value = integer
3 |
4 | [section]
5 | value = integer
6 |
7 | [[sub-section]]
8 | value = integer
9 | [[missing-subsection]]
10 | value = integer
11 |
12 | [missing-section]
13 | value = integer
14 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | wxPython
2 | # Only for Windows to have a shortcut created (install before RIDE)
3 | Pywin32; sys_platform == 'win32'
4 | Pygments # This enables syntax highlighted in Text Editor
5 | robotframework
6 | Pypubsub
7 | psutil
8 | packaging
9 | requests>=2.32.4
10 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/TestCases/Sub/Lib/MyListener.py:
--------------------------------------------------------------------------------
1 | class MyListener():
2 | def before_navigate_to(self, url, driver):
3 | print("Before navigate to %s" % url)
4 |
5 | def after_navigate_to(self, url, driver):
6 | print("After navigate to %s" % url)
7 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/test_project/no_project_settings/minimal.robot:
--------------------------------------------------------------------------------
1 | *** Variables ***
2 | ${MY VARIABLE} Value
3 |
4 | *** Test Cases ***
5 | Passing Test
6 | No Operation
7 |
8 | *** Keywords ***
9 | Logging Keyword
10 | [Timeout]
11 | No Operation
12 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/testsuite/minimal.robot:
--------------------------------------------------------------------------------
1 | *** Setting ***
2 |
3 | *** Variable ***
4 | ${MY VARIABLE} Value
5 |
6 | *** Test Case ***
7 | Passing Test
8 | No Operation
9 |
10 | *** Keyword ***
11 | Logging Keyword
12 | [Timeout]
13 | No Operation
14 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/test_project/with_project_settings_one/minimal.robot:
--------------------------------------------------------------------------------
1 | *** Variables ***
2 | ${MY VARIABLE} Value
3 |
4 | *** Test Cases ***
5 | Passing Test
6 | No Operation
7 |
8 | *** Keywords ***
9 | Logging Keyword
10 | [Timeout]
11 | No Operation
12 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/testsuite/resuja/resource.robot:
--------------------------------------------------------------------------------
1 | *** Setting ***
2 | Documentation This file is imported from resource.resource which is imported again here to test loop handling.
3 | Resource resource.resource
4 |
5 | *** Keywords ***
6 | UK From Text Resource No Operation
7 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/resources/resource.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Documentation This file is imported from resource.resource which is imported again here to test loop handling.
3 | Resource resource.resource
4 |
5 | *** Keywords ***
6 | UK From Text Resource
7 | No Operation
8 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/txt_only_test_suite/test_suite.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Documentation documentation for test suite
3 | Resource ../resources/resource.robot
4 |
5 | *** Test Cases ***
6 | Test Case 1
7 | [Documentation] Doc for test case
8 | No Operation
9 |
10 |
--------------------------------------------------------------------------------
/crowdin.yml:
--------------------------------------------------------------------------------
1 | files:
2 | - source: /src/robotide/localization/RIDE.pot
3 | translation: /src/robotide/localization/%locale_with_underscore%/LC_MESSAGES/RIDE.po
4 | - source: /src/robotide/localization/RIDE.pot
5 | translation: /src/robotide/localization/%two_letters_code%/LC_MESSAGES/RIDE.po
6 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/resources/another_resource.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Variables res_var_file.py
3 |
4 | *** Variables ***
5 | ${OPERATING SYSTEM} OperatingSystem
6 | ${RES NAME} resource4.robot
7 |
8 | *** Keywords ***
9 | Another Resource UK
10 | No Operation
11 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/test_project/empty_project_settings/minimal.robot:
--------------------------------------------------------------------------------
1 | *** Setting ***
2 |
3 | *** Variable ***
4 | ${MY VARIABLE} Value
5 |
6 | *** Test Case ***
7 | Passing Test
8 | No Operation
9 |
10 | *** Keyword ***
11 | Logging Keyword
12 | [Timeout]
13 | No Operation
14 |
--------------------------------------------------------------------------------
/rtest/testdir/resources/resu.txt:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 | Some keyword from resource file
3 | [Arguments] ${argument}
4 | [Documentation] This is documentation
5 | [Timeout] 1 second
6 | No Operation
7 | Log Something
8 | Log ${argument}
9 | [Teardown] Log teardown
10 |
11 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/put_into_python_path/PathResource.robot:
--------------------------------------------------------------------------------
1 | *** Setting ***
2 |
3 | *** Variable ***
4 | ${Path RESOURCE var} some value
5 |
6 | *** Keyword ***
7 | Path Resource UK
8 | [Documentation] This is a user keyword from resource file found from PYTHONPATH
9 | No Operation
10 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/test_project/with_project_settings_two/minimal.robot:
--------------------------------------------------------------------------------
1 | *** Setting ***
2 |
3 | *** Variable ***
4 | ${MY VARIABLE} Value
5 |
6 | *** Test Case ***
7 | Passing Test
8 | No Operation
9 |
10 | *** Keyword ***
11 | Logging Keyword
12 | [Timeout]
13 | No Operation
14 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | tmp
2 | build
3 | dist
4 | .idea
5 | .vscode
6 | .*project
7 | *.pyc
8 | *$py.class
9 | results
10 | src/robotframework_ride.egg-info
11 | RIDE.wiki
12 | .DS_Store
13 | .spyderworkspace
14 | rfgen.py
15 | MANIFEST
16 | *.iml
17 | .coverage
18 | coverage.xml
19 | utest/resources/fake.cfg
20 | *.po~
21 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/unused_keywords/Test_suite_2.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Resource Res1.robot
3 | Resource foobar.robot
4 |
5 | *** Test Cases ***
6 | Another test case
7 | Do that
8 | Local keyword
9 |
10 | *** Keywords ***
11 | Local keyword
12 | Log Hello
13 |
14 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/test_project/with_project_settings_two/subproject_no_project_settings/minimal.robot:
--------------------------------------------------------------------------------
1 | *** Setting ***
2 |
3 | *** Variable ***
4 | ${MY VARIABLE} Value
5 |
6 | *** Test Case ***
7 | Passing Test
8 | No Operation
9 |
10 | *** Keyword ***
11 | Logging Keyword
12 | [Timeout]
13 | No Operation
14 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/test_project/with_project_settings_two/subproject_with_project_settings/minimal.robot:
--------------------------------------------------------------------------------
1 | *** Setting ***
2 |
3 | *** Variable ***
4 | ${MY VARIABLE} Value
5 |
6 | *** Test Case ***
7 | Passing Test
8 | No Operation
9 |
10 | *** Keyword ***
11 | Logging Keyword
12 | [Timeout]
13 | No Operation
14 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/test_project/with_project_settings_two/subproject_empty_project_settings/minimal.robot:
--------------------------------------------------------------------------------
1 | *** Setting ***
2 |
3 | *** Variable ***
4 | ${MY VARIABLE} Value
5 |
6 | *** Test Case ***
7 | Passing Test
8 | No Operation
9 |
10 | *** Keyword ***
11 | Logging Keyword
12 | [Timeout]
13 | No Operation
14 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/language/preamble_no_lang.robot:
--------------------------------------------------------------------------------
1 | # This is the preamble
2 | # Non existing language setting
3 |
4 | Whatever stuff we have here is ignored
5 |
6 | Even not comments are valid
7 |
8 | # If we have a line starting with Language: then we consider the language
9 |
10 | *** Tasks ***
11 | My First Task
12 | No Operation
13 |
14 |
--------------------------------------------------------------------------------
/src/robotide/localization/ja_JP/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["No Operation", "無効 Operation"],
4 | ["Run Keyword And Continue On Failure", "Run Keyword And Continue はい Failure"],
5 | ["Run Keyword And Warn On Failure", "Run Keyword And Warn はい Failure"],
6 | ["Should Be True", "Should Be 真"],
7 | ["Should Not Be True", "Should Not Be 真"]
8 | ]
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/src/robotide/localization/ko_KR/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["No Operation", "아니오 Operation"],
4 | ["Run Keyword And Continue On Failure", "Run Keyword And Continue 켜기 Failure"],
5 | ["Run Keyword And Warn On Failure", "Run Keyword And Warn 켜기 Failure"],
6 | ["Should Be True", "Should Be 참"],
7 | ["Should Not Be True", "Should Not Be 참"]
8 | ]
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/src/robotide/localization/zh_CN/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["No Operation", "否 Operation"],
4 | ["Run Keyword And Continue On Failure", "Run Keyword And Continue 开 Failure"],
5 | ["Run Keyword And Warn On Failure", "Run Keyword And Warn 开 Failure"],
6 | ["Should Be True", "Should Be 真"],
7 | ["Should Not Be True", "Should Not Be 真"]
8 | ]
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/src/robotide/localization/zh_TW/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["No Operation", "否 Operation"],
4 | ["Run Keyword And Continue On Failure", "Run Keyword And Continue 開 Failure"],
5 | ["Run Keyword And Warn On Failure", "Run Keyword And Warn 開 Failure"],
6 | ["Should Be True", "Should Be 真"],
7 | ["Should Not Be True", "Should Not Be 真"]
8 | ]
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/TestCases/Sub/Lib/SubMyListener.py:
--------------------------------------------------------------------------------
1 | from selenium.webdriver.support.events import AbstractEventListener
2 |
3 | class SubMyListener(AbstractEventListener):
4 | def before_navigate_to(self, url, driver):
5 | print("Before navigate to %s" % url)
6 |
7 | def after_navigate_to(self, url, driver):
8 | print("After navigate to %s" % url)
9 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/resources/resource_with_variables.robot:
--------------------------------------------------------------------------------
1 | *** Keywords ***
2 | UK From Variable Resource No Operation
3 |
4 | *** Variables ***
5 | ${library_from_resource} Dialogs
6 | ${resource_from_resource} resource_from_resource_with_variable.robot
7 |
8 | *** Settings ***
9 | Library ${library_from_resource}
10 | Resource ${resource_from_resource}
11 |
--------------------------------------------------------------------------------
/tox.ini:
--------------------------------------------------------------------------------
1 | [tox]
2 | envlist = py39
3 |
4 | [testenv]
5 | setenv = APPDATA = {toxinidir}/AppData
6 | description = Unit tests
7 | deps =
8 | invoke
9 | pytest
10 | coverage
11 | commands = pip install -r requirements-dev.txt
12 | pip install -r requirements.txt
13 | pip install .
14 | invoke test-ci
15 |
16 | [coverage:run]
17 |
18 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/TestCases/Sub/resources/res02.resource:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Library ./res.py
3 |
4 | *** Keywords ***
5 | keyword1
6 | [Arguments] ${a}
7 | log ${a} This is at Sub/Resources/res02.resource
8 | Run Keyword keyword3
9 |
10 | keyword2
11 | [Arguments] ${a}
12 | log ${a}
13 |
14 | keyword3
15 | res_kw
16 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/external_resources_unsorted/suite/Suite1.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Resource ../external_resources/subdirectory2/bar.robot
3 | Resource ../external_resources/subdirectory/Foo.robot
4 | Resource ../external_resources/subdirectory2/Resource.robot
5 |
6 | *** Test Cases ***
7 | Test case
8 | kw1
9 | kw2
10 |
11 |
--------------------------------------------------------------------------------
/setup.cfg:
--------------------------------------------------------------------------------
1 | [sdist]
2 | force_manifest=1
3 |
4 | [bdist_wininst]
5 | bitmap=robot.bmp
6 | install_script=ride_postinstall.py
7 |
8 | [pycodestyle]
9 | count = False
10 | max_line_length = 90
11 | statistics = True
12 |
13 | [options]
14 | packages = find:
15 | include_package_data = true
16 |
17 | [options.entry_points]
18 | gui_scripts =
19 | ride = robotide.__main__:main
20 |
--------------------------------------------------------------------------------
/src/robotide/localization/de_DE/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["No Operation", "Nein Operation"],
4 | ["Run Keyword And Continue On Failure", "Run Keyword And Continue An Failure"],
5 | ["Run Keyword And Warn On Failure", "Run Keyword And Warn An Failure"],
6 | ["Should Be True", "Should Be Wahr"],
7 | ["Should Not Be True", "Should Not Be Wahr"]
8 | ]
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/src/robotide/localization/nl_NL/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["No Operation", "Nee Operation"],
4 | ["Run Keyword And Continue On Failure", "Run Keyword And Continue Aan Failure"],
5 | ["Run Keyword And Warn On Failure", "Run Keyword And Warn Aan Failure"],
6 | ["Should Be True", "Should Be Waar"],
7 | ["Should Not Be True", "Should Not Be Waar"]
8 | ]
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/src/robotide/localization/sv_SE/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["No Operation", "Nej Operation"],
4 | ["Run Keyword And Continue On Failure", "Run Keyword And Continue På Failure"],
5 | ["Run Keyword And Warn On Failure", "Run Keyword And Warn På Failure"],
6 | ["Should Be True", "Should Be Sant"],
7 | ["Should Not Be True", "Should Not Be Sant"]
8 | ]
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/src/robotide/localization/vi_VN/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["No Operation", "Không Operation"],
4 | ["Run Keyword And Continue On Failure", "Run Keyword And Continue Mở Failure"],
5 | ["Run Keyword And Warn On Failure", "Run Keyword And Warn Mở Failure"],
6 | ["Should Be True", "Should Be Đúng"],
7 | ["Should Not Be True", "Should Not Be Đúng"]
8 | ]
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/src/robotide/localization/fi_FI/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["No Operation", "Ei Operation"],
4 | ["Run Keyword And Continue On Failure", "Run Keyword And Continue Päällä Failure"],
5 | ["Run Keyword And Warn On Failure", "Run Keyword And Warn Päällä Failure"],
6 | ["Should Be True", "Should Be Tosi"],
7 | ["Should Not Be True", "Should Not Be Tosi"]
8 | ]
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/src/robotide/localization/fr_FR/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["No Operation", "Non Operation"],
4 | ["Run Keyword And Continue On Failure", "Run Keyword And Continue Actif Failure"],
5 | ["Run Keyword And Warn On Failure", "Run Keyword And Warn Actif Failure"],
6 | ["Should Be True", "Should Be Vrai"],
7 | ["Should Not Be True", "Should Not Be Vrai"]
8 | ]
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/src/robotide/localization/hi_IN/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["No Operation", "नहीं Operation"],
4 | ["Run Keyword And Continue On Failure", "Run Keyword And Continue हां Failure"],
5 | ["Run Keyword And Warn On Failure", "Run Keyword And Warn हां Failure"],
6 | ["Should Be True", "Should Be यथार्थ"],
7 | ["Should Not Be True", "Should Not Be यथार्थ"]
8 | ]
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/src/robotide/localization/tr_TR/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["No Operation", "Hayir Operation"],
4 | ["Run Keyword And Continue On Failure", "Run Keyword And Continue Açik Failure"],
5 | ["Run Keyword And Warn On Failure", "Run Keyword And Warn Açik Failure"],
6 | ["Should Be True", "Should Be Doğru"],
7 | ["Should Not Be True", "Should Not Be Doğru"]
8 | ]
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/simple_testsuite_with_different_namespaces/TestSuite3.robot:
--------------------------------------------------------------------------------
1 | Language: English
2 |
3 | *** Test Cases ***
4 | My Second Test
5 | My Keyword
6 | embedded args keyword
7 | None Keyword
8 | 2nd embedded args keyword
9 |
10 | *** Keywords ***
11 | embedded ${args} keyword
12 | No Operation
13 |
14 | 2nd embedded ${args} keyword
15 | No Operation
16 |
--------------------------------------------------------------------------------
/src/robotide/localization/bg_BG/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["No Operation", "Не Operation"],
4 | ["Run Keyword And Continue On Failure", "Run Keyword And Continue Включен Failure"],
5 | ["Run Keyword And Warn On Failure", "Run Keyword And Warn Включен Failure"],
6 | ["Should Be True", "Should Be Вярно"],
7 | ["Should Not Be True", "Should Not Be Вярно"]
8 | ]
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/src/robotide/localization/cs_CZ/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["No Operation", "Ne Operation"],
4 | ["Run Keyword And Continue On Failure", "Run Keyword And Continue Zapnuto Failure"],
5 | ["Run Keyword And Warn On Failure", "Run Keyword And Warn Zapnuto Failure"],
6 | ["Should Be True", "Should Be Pravda"],
7 | ["Should Not Be True", "Should Not Be Pravda"]
8 | ]
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/src/robotide/localization/pt_BR/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["No Operation", "Não Operation"],
4 | ["Run Keyword And Continue On Failure", "Run Keyword And Continue Sim Failure"],
5 | ["Run Keyword And Warn On Failure", "Run Keyword And Warn Sim Failure"],
6 | ["Should Be True", "Should Be Verdadeiro"],
7 | ["Should Not Be True", "Should Not Be Verdadeiro"]
8 | ]
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/src/robotide/localization/pt_PT/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["No Operation", "Não Operation"],
4 | ["Run Keyword And Continue On Failure", "Run Keyword And Continue Sim Failure"],
5 | ["Run Keyword And Warn On Failure", "Run Keyword And Warn Sim Failure"],
6 | ["Should Be True", "Should Be Verdadeiro"],
7 | ["Should Not Be True", "Should Not Be Verdadeiro"]
8 | ]
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/src/robotide/localization/ro_RO/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["No Operation", "Nu Operation"],
4 | ["Run Keyword And Continue On Failure", "Run Keyword And Continue Cand Failure"],
5 | ["Run Keyword And Warn On Failure", "Run Keyword And Warn Cand Failure"],
6 | ["Should Be True", "Should Be Adevarat"],
7 | ["Should Not Be True", "Should Not Be Adevarat"]
8 | ]
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/src/robotide/localization/pl_PL/restore_keywords.json:
--------------------------------------------------------------------------------
1 | {
2 | "fix_list":[
3 | ["No Operation", "Nie Operation"],
4 | ["Run Keyword And Continue On Failure", "Run Keyword And Continue Włączone Failure"],
5 | ["Run Keyword And Warn On Failure", "Run Keyword And Warn Włączone Failure"],
6 | ["Should Be True", "Should Be Prawda"],
7 | ["Should Not Be True", "Should Not Be Prawda"]
8 | ]
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/src/robotide/localization/TRANSLATORS.adoc:
--------------------------------------------------------------------------------
1 | = Translators
2 | ifdef::env-github[:outfilesuffix: .adoc]
3 |
4 | - https://github.com/JFoederer[J. Foederer]: Dutch
5 | - Minerva Järvensivu: Finnish
6 | - https://github.com/HelioGuilherme66[Hélio Guilherme]: Portuguese, Brazilian Portuguese
7 | - Hyeonho Kang: Korean
8 | - https://github.com/ripplepiam[Bo Pan]: Chinese Simplified
9 | - Unknown: Pirates
10 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/simple/test.robot:
--------------------------------------------------------------------------------
1 | *** Test Cases ***
2 | Test Case
3 | Keyword argument
4 |
5 | *** Keywords ***
6 | Keyword
7 | [Arguments] ${argument}
8 | Log ${argument}
9 | No Operation
10 | ${foo}= Set Variable value
11 | Log ${foo}
12 | ${bar}= Set Variable value2
13 | Log ${foo} and ${bar}
14 | FOR ${i} IN 1 2 3
15 | Log ${i}
16 | END
17 | Log ${i} out
18 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/findwhereused_variables/Suite_2.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Resource Res1.robot
3 |
4 | *** Test Cases ***
5 | Case 4
6 | ${Truth}
7 |
8 | Case 5
9 | [Documentation] See, if we can use the variable ${resVar} from a resource file
10 | Log ${resVar}
11 | ${ServerHost}
12 |
13 | Case 6
14 | [Documentation] lorem ${Falsy} ipsum
15 | [Setup] ${Truth}
16 | ${Truth}
17 |
18 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/simple_testsuite_with_different_namespaces/testdata_resource.robot:
--------------------------------------------------------------------------------
1 | Language: English
2 |
3 | *** Settings ***
4 | Resource resources${/}inner_resource.robot
5 |
6 | *** Variables ***
7 | @{Resource List} 2 34
8 | ${Resource Var} iadota
9 |
10 | *** Keywords ***
11 | My Keyword
12 | No Operation
13 |
14 | Only From Resource
15 | No Operation
16 |
17 | Keyword In Both Resources
18 | No Operation
19 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/libs/AnotherArgLib.py:
--------------------------------------------------------------------------------
1 | class AnotherArgLib(object):
2 |
3 | def __init__(self, *args):
4 | self._check_args(args)
5 | self._args = args
6 |
7 | def _check_args(self, args):
8 | for arg in args:
9 | if arg and '${' in arg:
10 | raise ValueError('Test library needs variables resolved')
11 |
12 | def longest(self):
13 | return max(self._args, key=len)
14 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/Embedded_arguments.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Resource resources/resource.resource
3 |
4 | *** Test Cases ***
5 | Call keyword
6 | VAR ${action} Sends
7 | User ${action} Email
8 | User Reads Email
9 |
10 | Server keyword
11 | VAR ${action} Sends Email
12 | resource.Server ${action} To User John Doe
13 | VAR ${user} Jane Doe
14 | resource.Server Sends Message To User ${user}
15 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/libs/TestLib.py:
--------------------------------------------------------------------------------
1 | def testlib_keyword():
2 | """
3 | """
4 | return True
5 |
6 |
7 | def testlib_keyword_with_args(arg1, arg2='default value', *args):
8 | """This keyword requires one argument, has one optional argument and varargs.
9 |
10 | This is some more documentation
11 | """
12 | pass
13 |
14 | def testlib_keyword_with_kwonlyargs(arg1, *args, namedarg1, namedarg2='default value', **kwargs):
15 | pass
16 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/TestCases/Sub/suite02.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Resource ./resources/res02.resource
3 | Library ./Lib/mykw.py
4 | Resource ../../resources/external_res.resource
5 |
6 | *** Test Cases ***
7 | case01
8 | [Setup] res02.keyword1 Called from Setup in Sub/Suite02/case01
9 | my_kw
10 | res02.keyword3
11 | external_res.keyword2 Called fromSteps on Sub/Suite02/case01
12 | [Teardown] external_res.keyword3
13 |
--------------------------------------------------------------------------------
/MANIFEST.in:
--------------------------------------------------------------------------------
1 | include *.bmp
2 | include *.py
3 | include *.rest
4 | include *.sh
5 | include *.txt
6 | include *.adoc
7 | recursive-include src *.css *.js *.py *.robot *.txt *.png *.gif *.ico *.cfg *.html
8 | recursive-include doc *.rst
9 | recursive-include rtest *.py *.txt
10 | recursive-include src/robotide/postinstall/RIDE.app *.*
11 | recursive-include src/robotide/preferences/configobj/src/configobj *.*
12 | recursive-include src/robotide/localization *.py *.adoc *.pot *.po *.mo
13 |
14 |
--------------------------------------------------------------------------------
/doc/other/example_maven_runner/runTests.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | rem Find pom.xml for this testsuite
3 | setlocal EnableDelayedExpansion
4 | rem Get path from first parameter
5 | set return_path=%1
6 | rem Check that dir contains pom.xml
7 | if exist !return_path!\pom.xml goto continue
8 | echo No pom.xml found in !return_path!
9 | exit /B 1
10 | :continue
11 | rem Start maven
12 | cd /D%return_path%
13 | mvn -Prun-tests-with-ride verify -Dride.argumentFile=%3 -Dride.listener=%5 -Dride.testCasesDirectory=%6
--------------------------------------------------------------------------------
/utest/resources/robotdata/TestCases/Sub/Suite01.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Library Collections
3 | Resource ../resources/res01.resource
4 | Library ./Lib/SubMyListener.py
5 | Library ../Sub/Lib/mykw.py
6 |
7 | *** Test Cases ***
8 | case01
9 | [Setup] res01.keyword3
10 | keyword22 lalala\nlala\nlala
11 |
12 | case02
13 | log ${CURDIR}
14 | log ${EXECDIR}
15 | my_kw
16 | kw1 hehe
17 | after navigate to about:blank None
18 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/findwhereused_variables/Res1.robot:
--------------------------------------------------------------------------------
1 | *** Variables ***
2 | ${resVar} "something"
3 | ${anotherVar} "Nothing but ${EMPTY} ${SPACE}"
4 |
5 | *** Keywords ***
6 | User KW 1
7 | [Arguments] ${arg1} @{arg2}
8 | ${ServerPort}
9 | ${Truth} ${Falsy}
10 | [Teardown] ${resVar}
11 |
12 | User KW 2
13 | [Arguments] ${arg1} @{arg2}
14 | [Documentation] Lorem ${arg1} ipsum
15 | Log ${resVar}
16 | ${arg1}
17 | @{arg2}
18 | [Teardown] @{arg2}
19 |
20 |
--------------------------------------------------------------------------------
/sonar-project.properties:
--------------------------------------------------------------------------------
1 | sonar.projectKey=HelioGuilherme66_RIDE
2 | sonar.organization=helioguilherme66
3 | sonar.host.url=https://sonarcloud.io
4 | sonar.python.version=3.10
5 | sonar.projectVersion=v2.2.1
6 | sonar.sources=src/
7 | sonar.tests=utest/
8 | sonar.exclusions=**/lib/robot/**/*
9 | sonar.dynamicAnalysis=reuseReports
10 | sonar.core.codeCoveragePlugin=cobertura
11 | sonar.python.coverage.reportPaths=.coverage-reports/*coverage*.xml
12 | sonar.python.xunit.skipDetails=true
13 | sonar.scm.provider=git
14 |
--------------------------------------------------------------------------------
/src/robotide/lib/robot/htmldata/common/js_disabled.css:
--------------------------------------------------------------------------------
1 | #javascript-disabled {
2 | width: 600px;
3 | margin: 100px auto 0 auto;
4 | padding: 20px;
5 | color: black;
6 | border: 1px solid #ccc;
7 | background: #eee;
8 | }
9 | #javascript-disabled h1 {
10 | width: 100%;
11 | float: none;
12 | }
13 | #javascript-disabled ul {
14 | font-size: 1.2em;
15 | }
16 | #javascript-disabled li {
17 | margin: 0.5em 0;
18 | }
19 | #javascript-disabled b {
20 | font-style: italic;
21 | }
22 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/simple_testsuite_with_different_namespaces/TestSuite1.robot:
--------------------------------------------------------------------------------
1 | Language: English
2 |
3 | *** Settings ***
4 | Resource testdata_resource.robot
5 | Resource ..${/}resources${/}resu.robot
6 |
7 | *** Variables ***
8 | @{Test Suite 1 List} 1 2
9 | ${Test Suite 1 Var} robotista
10 |
11 | *** Test Cases ***
12 | My Test
13 | My Keyword
14 | None Keyword
15 | Log From builtin
16 |
17 | *** Keywords ***
18 | My Keyword
19 | No Operation
20 |
21 | None Keyword
22 | No Operation
23 |
--------------------------------------------------------------------------------
/src/robotide/lib/robot/htmldata/testdata/dir.suite/test.suite.1.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Suite Setup User Keyword
3 |
4 | *** Test Cases ***
5 | list test
6 | [Tags] collections
7 | ${list} = Create List foo bar quux
8 | Log ${list}
9 |
10 | *** Keywords ***
11 | User Keyword
12 | User Keyword 2
13 | No Operation
14 | ${ret} = User Keyword 3
15 |
16 | User Keyword 2
17 | Log Several levels...
18 | User Keyword 3
19 |
20 | User Keyword 3
21 | Log The End HTML
22 |
--------------------------------------------------------------------------------
/src/robotide/lib/compat/parsing/validator.py:
--------------------------------------------------------------------------------
1 | from robot.api.parsing import ModelVisitor
2 | from robotide.lib.robot.errors import DataError
3 |
4 |
5 | class ErrorReporter(ModelVisitor):
6 |
7 | def generic_visit(self, node):
8 | if node.errors:
9 | print(f"DEBUG: validator.py ErrorReporter: Error on line {node.lineno}:")
10 | for error in node.errors:
11 | print(f"- {error}")
12 | raise DataError(message=error,details=node.lineno)
13 | ModelVisitor.generic_visit(self, node)
14 |
--------------------------------------------------------------------------------
/requirements-dev.txt:
--------------------------------------------------------------------------------
1 | setuptools>=78.1.1
2 | build
3 | mockito
4 | invoke
5 | urllib3>=2.5.0 # not directly required, pinned by Snyk to avoid a vulnerability
6 | zipp>3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability
7 | requests>=2.32.4
8 | github3.py
9 | memory-profiler
10 | pylint
11 | pytest
12 | coverage
13 | pytest-cov
14 | pytest-html
15 | pytest-order
16 | packaging >= 24.2
17 | hatch-fancy-pypi-readme
18 | # To make a relase you need asciidoc3 (a2x3)
19 | # asciidoc3
20 | # Include also normal project requirements.
21 | -r requirements.txt
22 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/findwhereused_variables/Suite_1.robot:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Variables vars.py
3 |
4 | *** Variables ***
5 | ${fileVar} "nothing"
6 |
7 | *** Test Cases ***
8 | Case 1
9 | [Setup] Some Keyword ${fileVar}
10 | [Timeout]
11 | ${ServerHost} ${ServerPort}
12 | ${Falsy}
13 |
14 | Case 2
15 | [Documentation] The variable ${log} can be found here
16 | ${log}= Set Variable "Text"
17 | Log ${log}
18 | ${ServerHost}
19 | [Teardown] ${fileVar}
20 |
21 | Case 3
22 | [Documentation] The variable ${log} can also be found here
23 | Log ${fileVar}
24 | ${EMPTY}
25 |
26 |
--------------------------------------------------------------------------------
/COPYRIGHT.txt:
--------------------------------------------------------------------------------
1 | Copyright 2008-2015 Nokia Networks
2 | Copyright 2016- Robot Framework Foundation
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/testsuite/resuja/resource.resource:
--------------------------------------------------------------------------------
1 | *** Settings ***
2 | Resource resource.robot
3 |
4 | *** Variables ***
5 | ${RESOURCE var} Foo
6 |
7 | *** Keywords ***
8 | Resource UK
9 | [Documentation] This is a user keyword from resource file
10 | [Timeout]
11 | No Operation
12 |
13 | Parametrized UK
14 | [Arguments] ${arg} ${defarg}=def val @{vararg}
15 | [Timeout]
16 | Log Many ${arg} ${defarg} @{vararg}
17 |
18 | Funny Def Value
19 | [Arguments] ${arg}=${None} ${urg}=${myvar=foo}
20 | [Timeout]
21 | Log Many ${arg} ${urg}
22 |
23 | Duplicate UK
24 | No Operation
25 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/testsuite/spec_resource.xml:
--------------------------------------------------------------------------------
1 |
2 |
Starting from RIDE 1.5, Robot Framework standard libraries are no longer included in RIDE installation. In order to have intellisense features work with Robot Framework standard libraries, it must be installed separately. See the official website for installation instructions.
21 | -------------------------------------------------------------------------------- /utest/resources/user2.cfg: -------------------------------------------------------------------------------- 1 | mainframe size = (1200, 900) 2 | mainframe position = (0, 0) 3 | default directory = '.' 4 | default template = None 5 | # Auto imports is a list of libraries whose keywords are always visible in keyword completion. 6 | # If the library needs arguments, they follow the library name with '|' as a separator. 7 | # Example: auto imports = ['MyLib', 'AnotherLibraryWithArgs|arg1|arg2'] 8 | auto imports = [] 9 | install root = 'C:\\Python36\\lib\\site-packages\\robotide' 10 | txt number of spaces = 2 11 | [Plugins] 12 | [[Release Notes]] 13 | version_shown = '0.22' 14 | _enabled = True 15 | [[Run Anything]] 16 | configs = [('Run All Tests In Current Directory', 'pybot.bat --outputdir results .', '')] 17 | _enabled = True 18 | [[Recent Files]] 19 | max_number_of_files = 4 20 | recent_files = [] 21 | _enabled = True 22 | [[Preview]] 23 | _enabled = False 24 | [[Colorizer]] 25 | user_keyword_fg = 'purple' 26 | variable_fg = 'forest green' 27 | comment_fg = 'firebrick' 28 | default_fg = 'black' 29 | library_keyword_fg = 'blue' 30 | _enabled = True 31 | [[Editor]] 32 | _enabled = True 33 | [[Keyword Search]] 34 | _enabled = True 35 | -------------------------------------------------------------------------------- /src/robotide/postinstall/__main__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # encoding=utf-8 3 | # Copyright 2008-2015 Nokia Networks 4 | # Copyright 2016- Robot Framework Foundation 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. 8 | # You may obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, 14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | # See the License for the specific language governing permissions and 16 | # limitations under the License. 17 | import sys 18 | 19 | if __name__ == '__main__' and 'robotide.postinstall' not in sys.modules: 20 | from pathlib import Path 21 | robotide_dir = Path(__file__).absolute().parent # zipsafe 22 | sys.path = [str(robotide_dir.parent)] + [p for p in sys.path if Path(p) != robotide_dir] 23 | 24 | from robotide.postinstall import main 25 | 26 | main(*sys.argv[1:]) 27 | -------------------------------------------------------------------------------- /utest/resources/robotdata/lib_with_doc_format/testLibRobot.py: -------------------------------------------------------------------------------- 1 | # Copyright 2018- Robot Framework Foundation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from robot.api.deco import keyword as keyword 16 | 17 | ROBOT_LIBRARY_DOC_FORMAT = 'ROBOT' 18 | 19 | """ 20 | _Simple_ *robot* _library_ 21 | """ 22 | 23 | def robot_doc_keyword1(): 24 | """ 25 | = doc_format = 26 | - robot 27 | """ 28 | pass 29 | 30 | 31 | @keyword("pretty robot keyword") 32 | def robot_doc_keyword2(arg1, arg2='default value', *args): 33 | """robot documentaion 34 | """ 35 | pass 36 | -------------------------------------------------------------------------------- /utest/resources/robotdata/simple_testsuite_with_different_namespaces/TestSuite2.robot: -------------------------------------------------------------------------------- 1 | Language: English 2 | 3 | *** Settings *** 4 | Documentation suitedocmatch 5 | Resource testdata_resource.robot 6 | Suite Setup Run Keyword Suite Setup Keyword 7 | Test Teardown Test Teardown in Setting 8 | 9 | *** Variables *** 10 | @{Test Suite 2 List} 2 3 11 | ${Test Suite 2 Var} irobota 12 | 13 | *** Test Cases *** 14 | My Test 15 | [Documentation] testdocmatch 16 | My Keyword 17 | My Keyword 18 | None Keyword 19 | Log Local 20 | 21 | My Other Test 22 | None Keyword 23 | None Keyword 24 | 25 | My Third Test 26 | [Setup] Run Keyword Test Setup Keyword 27 | [Teardown] Run Keyword Test Teardown Keyword 28 | No Operation 29 | 30 | *** Keywords *** 31 | Log 32 | [Documentation] keyworddocmatch 33 | Overrides builtin 34 | 35 | Test Setup Keyword 36 | [Teardown] Keyword Teardown Keyword 37 | No Operation 38 | 39 | Test Teardown Keyword 40 | No Operation 41 | 42 | Keyword Teardown Keyword 43 | No Operation 44 | 45 | Suite Setup Keyword 46 | No Operation 47 | 48 | Test Teardown in Setting 49 | No Operation 50 | -------------------------------------------------------------------------------- /utest/editor/fakeplugin.py: -------------------------------------------------------------------------------- 1 | # Copyright 2008-2015 Nokia Networks 2 | # Copyright 2016- Robot Framework Foundation 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | 17 | class FakePlugin(object): 18 | def __init__(self, editors, item): 19 | self._editors = editors 20 | self._item = item 21 | 22 | def get_selected_item(self): 23 | return self._item 24 | 25 | def get_editor(self, itemclass): 26 | return self._editors[itemclass] 27 | 28 | def subscribe(self, *args): 29 | pass 30 | 31 | def unsubscribe(self, *args): 32 | pass 33 | -------------------------------------------------------------------------------- /utest/run/process_test_scripts.py: -------------------------------------------------------------------------------- 1 | # Copyright 2008-2015 Nokia Networks 2 | # Copyright 2016- Robot Framework Foundation 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import sys 17 | import time 18 | 19 | 20 | def output(sleep=0.1): 21 | print('start') 22 | for i in range(2): 23 | print('running iteration %d' % i * 500) 24 | time.sleep(float(sleep)) 25 | print('done') 26 | 27 | 28 | def count_args(*args): 29 | print(len(args)) 30 | 31 | 32 | def stderr(): 33 | sys.stderr.write('This is stderr\n') 34 | 35 | 36 | globals()[sys.argv[1]](*sys.argv[2:]) 37 | -------------------------------------------------------------------------------- /utest/resources/robotdata/lib_with_doc_format/testLibHtml.py: -------------------------------------------------------------------------------- 1 | # Copyright 2018- Robot Framework Foundation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from robot.api.deco import keyword as keyword 16 | 17 | ROBOT_LIBRARY_DOC_FORMAT = 'HTML' 18 | 19 | """ 20 | Simple html library 21 | """ 22 | 23 | def html_doc_keyword1(): 24 | """ 25 | doc_format 26 | html 27 | """ 28 | pass 29 | 30 | 31 | @keyword("pretty html keyword") 32 | def html_doc_keyword2(arg1, arg2='default value', *args): 33 | """html documentaion 34 | """ 35 | pass 36 | -------------------------------------------------------------------------------- /src/robotide/lib/robot/htmldata/common/doc_formatting.css: -------------------------------------------------------------------------------- 1 | .doc > * { 2 | margin: 0.7em 1em 0.1em 1em; 3 | padding: 0; 4 | } 5 | .doc > p, .doc > h1, .doc > h2, .doc > h3, .doc > h4 { 6 | margin: 0.7em 0 0.1em 0; 7 | } 8 | .doc > *:first-child { 9 | margin-top: 0.1em; 10 | } 11 | .doc table { 12 | border: 1px solid #ccc; 13 | background: transparent; 14 | border-collapse: collapse; 15 | empty-cells: show; 16 | font-size: 0.9em; 17 | } 18 | .doc table th, .doc table td { 19 | border: 1px solid #ccc; 20 | background: transparent; 21 | padding: 0.1em 0.3em; 22 | height: 1.2em; 23 | } 24 | .doc table th { 25 | text-align: center; 26 | letter-spacing: 0.1em; 27 | } 28 | .doc pre { 29 | font-size: 1.1em; 30 | letter-spacing: 0.05em; 31 | background: #f4f4f4; 32 | } 33 | .doc code { 34 | padding: 0 0.2em; 35 | letter-spacing: 0.05em; 36 | background: #eee; 37 | } 38 | .doc li { 39 | list-style-position: inside; 40 | list-style-type: square; 41 | } 42 | .doc img { 43 | border: 1px solid #ccc; 44 | } 45 | .doc hr { 46 | background: #ccc; 47 | height: 1px; 48 | border: 0; 49 | } 50 | -------------------------------------------------------------------------------- /utest/utils/test_htmlformat.py: -------------------------------------------------------------------------------- 1 | # Copyright 2008-2015 Nokia Networks 2 | # Copyright 2016- Robot Framework Foundation 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import unittest 17 | from robotide import utils 18 | 19 | class HTMLFormatTestCase(unittest.TestCase): 20 | 21 | def test_formatting(self): 22 | formated = utils.html_format('| foo | bar |\n| zoo | zaa |\n\nhello') 23 | self.assertEqual('| foo | \nbar | \n
| zoo | \nzaa | \n
hello
', formated) 24 | 25 | if __name__ == '__main__': 26 | unittest.main() 27 | -------------------------------------------------------------------------------- /src/robotide/lib/robot/libdocpkg/writer.py: -------------------------------------------------------------------------------- 1 | # Copyright 2008-2015 Nokia Networks 2 | # Copyright 2016- Robot Framework Foundation 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from robotide.lib.robot.errors import DataError 17 | 18 | from .htmlwriter import LibdocHtmlWriter 19 | from .xmlwriter import LibdocXmlWriter 20 | 21 | 22 | def LibdocWriter(format=None): 23 | format = (format or 'HTML').upper() 24 | if format == 'HTML': 25 | return LibdocHtmlWriter() 26 | if format == 'XML': 27 | return LibdocXmlWriter() 28 | raise DataError("Format must be either 'HTML' or 'XML', got '%s'." % format) 29 | -------------------------------------------------------------------------------- /src/robotide/lib/robot/output/console/quiet.py: -------------------------------------------------------------------------------- 1 | # Copyright 2008-2015 Nokia Networks 2 | # Copyright 2016- Robot Framework Foundation 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import sys 17 | 18 | from .highlighting import HighlightingStream 19 | 20 | 21 | class QuietOutput(object): 22 | 23 | def __init__(self, colors='AUTO', stderr=None): 24 | self._stderr = HighlightingStream(stderr or sys.__stderr__, colors) 25 | 26 | def message(self, msg): 27 | if msg.level in ('WARN', 'ERROR'): 28 | self._stderr.error(msg.message, msg.level) 29 | 30 | 31 | class NoOutput(object): 32 | pass 33 | -------------------------------------------------------------------------------- /src/robotide/lib/robot/result/messagefilter.py: -------------------------------------------------------------------------------- 1 | # Copyright 2008-2015 Nokia Networks 2 | # Copyright 2016- Robot Framework Foundation 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from robotide.lib.robot.output.loggerhelper import IsLogged 17 | 18 | from robotide.lib.robot.model import SuiteVisitor 19 | 20 | 21 | class MessageFilter(SuiteVisitor): 22 | 23 | def __init__(self, loglevel): 24 | self._is_logged = IsLogged(loglevel or 'TRACE') 25 | 26 | def start_keyword(self, keyword): 27 | keyword.messages = [msg for msg in keyword.messages 28 | if self._is_logged(msg.level)] 29 | -------------------------------------------------------------------------------- /src/robotide/lib/robot/writer/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2008-2015 Nokia Networks 2 | # Copyright 2016- Robot Framework Foundation 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | """Implements writing of parsed, and possibly edited, test data back to files. 17 | 18 | This functionality is used by :meth:`robot.parsing.model.TestCaseFile.save` 19 | and indirectly by :mod:`robot.tidy`. External tools should not need to use 20 | this package directly. 21 | 22 | This package is considered stable, although the planned changes to 23 | :mod:`robot.parsing` may affect also this package. 24 | """ 25 | 26 | from .datafilewriter import DataFileWriter 27 | -------------------------------------------------------------------------------- /src/robotide/widgets/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2008-2015 Nokia Networks 2 | # Copyright 2016- Robot Framework Foundation 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from .button import ButtonWithHandler 17 | from .dialog import RIDEDialog, HtmlDialog, HtmlWindow 18 | # , HTML_BACKGROUND 19 | from .font import Font 20 | from .images import ImageList, ImageProvider 21 | from .label import Label, HeaderLabel, HelpLabel 22 | from .list import VirtualList 23 | from .popupmenu import PopupCreator, PopupMenu, PopupMenuItem, PopupMenuItems 24 | from .sizers import VerticalSizer, HorizontalSizer 25 | from .text import TextField, SearchField 26 | -------------------------------------------------------------------------------- /utest/resources/robotdata/language/en/__init__.robot: -------------------------------------------------------------------------------- 1 | # This is the preamble 2 | Language: English 3 | 4 | # A blank line 5 | 6 | *** Comments *** 7 | This is a comments block 8 | Second line of comments 9 | Maybe this block is still in preamble 10 | 11 | *** Settings *** 12 | Library Collections # This is a comment 13 | Resource full_en.resource # This is a comment 14 | Variables full_en.yaml # This is a comment 15 | Variables full_en.json # This is a comment 16 | Variables full_en.py # This is a comment 17 | 18 | Documentation This is the documentation 19 | ... A continued line of documentation 20 | 21 | Metadata Name Value # This is a comment 22 | 23 | Suite Setup Suite Keyword Suite Setup 24 | Suite Teardown Log To Console Suite Teardown 25 | 26 | *** Variables *** 27 | ${myvar} 123 # This is a comment 28 | 29 | *** Keywords *** 30 | Suite Keyword 31 | [Documentation] This is the documentation 32 | ... A continued line of documentation 33 | [Arguments] ${arg} # This is a comment 34 | [Tags] suite # This is a comment 35 | Log To Console This is the Suite Keyword arg=${arg} 36 | -------------------------------------------------------------------------------- /src/robotide/lib/robot/running/arguments/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2008-2015 Nokia Networks 2 | # Copyright 2016- Robot Framework Foundation 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from robotide.lib.robot.utils import JYTHON 17 | 18 | from .argumentmapper import DefaultValue 19 | from .argumentparser import (PythonArgumentParser, UserKeywordArgumentParser, 20 | DynamicArgumentParser, JavaArgumentParser) 21 | from .argumentspec import ArgumentSpec 22 | from .embedded import EmbeddedArguments 23 | if JYTHON: 24 | from .javaargumentcoercer import JavaArgumentCoercer 25 | else: 26 | JavaArgumentCoercer = None 27 | -------------------------------------------------------------------------------- /src/robotide/lib/robot/variables/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2008-2015 Nokia Networks 2 | # Copyright 2016- Robot Framework Foundation 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | """Implements storing and resolving variables. 17 | 18 | This package is mainly for internal usage. 19 | """ 20 | 21 | from .assigner import VariableAssignment 22 | from .isvar import contains_var, is_var, is_scalar_var, is_list_var, is_dict_var 23 | from .notfound import variable_not_found 24 | from .scopes import VariableScopes 25 | from .splitter import VariableSplitter, VariableIterator 26 | from .tablesetter import VariableTableValue, DictVariableTableValue 27 | from .variables import Variables 28 | -------------------------------------------------------------------------------- /src/robotide/lib/robot/htmldata/testdata/dir.suite/test.suite.2.robot: -------------------------------------------------------------------------------- 1 | *** Test Cases *** 2 | Dictionary test 3 | [Tags] collections 4 | ${dict} = Create Dictionary key value 5 | Log ${dict} 6 | 7 | Test with a rather long name here we have and the name really is pretty long long long long longer than you think it could be 8 | [Tags] this test also has a pretty long tag that really is long long long long long longer than you think it could be 9 | Keyword we have here is rather long long long long long longer than you think it could be be be be be be beeeeeee 10 | This keyword gets many arguments 11 | ... it really gets many arguments 12 | ... it really gets many arguments 13 | ... it really gets many arguments 14 | ... it really gets many arguments 15 | ... it really gets many arguments 16 | ... it really gets many arguments 17 | 18 | *** Keywords *** 19 | Keyword we have here is rather long long long long long longer than you think it could be be be be be be beeeeeee 20 | No Operation 21 | 22 | This keyword gets many arguments 23 | [Arguments] @{args} 24 | Log many @{args} 25 | -------------------------------------------------------------------------------- /src/robotide/lib/robot/htmldata/normaltemplate.py: -------------------------------------------------------------------------------- 1 | # Copyright 2008-2015 Nokia Networks 2 | # Copyright 2016- Robot Framework Foundation 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import codecs 17 | import os 18 | from os.path import abspath, dirname, join, normpath 19 | 20 | 21 | class HtmlTemplate(object): 22 | _base_dir = join(dirname(abspath(__file__)), '..', 'htmldata') 23 | 24 | def __init__(self, filename): 25 | self._path = normpath(join(self._base_dir, filename.replace('/', os.sep))) 26 | 27 | def __iter__(self): 28 | with codecs.open(self._path, encoding='UTF-8') as file: 29 | for line in file: 30 | yield line.rstrip() 31 | -------------------------------------------------------------------------------- /utest/resources/robotdata/lib_with_doc_format/testLibRest.py: -------------------------------------------------------------------------------- 1 | # Copyright 2018- Robot Framework Foundation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from robot.api.deco import keyword as keyword 16 | 17 | ROBOT_LIBRARY_DOC_FORMAT = 'REST' 18 | 19 | """ 20 | .. code:: robotframework 21 | *** Test Cases *** 22 | Example 23 | pretty rest keyword # How cool is this!!?!!?!1!! 24 | """ 25 | 26 | def rest_doc_keyword1(): 27 | """ 28 | **doc_format** 29 | *reST* 30 | """ 31 | return True 32 | 33 | 34 | @keyword("pretty rest keyword") 35 | def rest_doc_keyword2(arg1, arg2='default value', *args): 36 | """reST documentaion 37 | """ 38 | pass 39 | -------------------------------------------------------------------------------- /src/robotide/lib/robot/libraries/Easter.py: -------------------------------------------------------------------------------- 1 | # Copyright 2008-2015 Nokia Networks 2 | # Copyright 2016- Robot Framework Foundation 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | from robotide.lib.robot.api import logger 17 | 18 | 19 | def none_shall_pass(who): 20 | if who is not None: 21 | raise AssertionError('None shall pass!') 22 | logger.info( 23 | '', 29 | html=True 30 | ) 31 | -------------------------------------------------------------------------------- /utest/resources/robotdata/lib_with_doc_format/testLibHtmlClass.py: -------------------------------------------------------------------------------- 1 | # Copyright 2018- Robot Framework Foundation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | from robot.api.deco import keyword as keyword 16 | 17 | class testLibHtmlClass: 18 | ROBOT_LIBRARY_DOC_FORMAT = 'HTML' 19 | 20 | """ 21 |')
29 | text = text.replace('\n', '
')
30 | return text
31 |
32 | def preview_text(self, text):
33 | if '' not in text:
34 | text = self.GetHtmlText(text)
35 | HtmlEasyPrinting.PreviewText(self, text)
36 |
--------------------------------------------------------------------------------
/utest/contrib/testrunner/test_settings_parser.py:
--------------------------------------------------------------------------------
1 | # Copyright 2023- Robot Framework Foundation
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | import unittest
16 |
17 | from robotide.contrib.testrunner.SettingsParser import SettingsParser
18 |
19 |
20 | class SettingsParserTests(unittest.TestCase):
21 |
22 | def test_get_console_log_name_default(self):
23 | settings = ['message_log_name', 'Messages.txt']
24 | result = SettingsParser.get_console_log_name(settings)
25 | self.assertEqual('', result)
26 |
27 | def test_get_console_log_name(self):
28 | settings = ['console_log_name', 'Console Log.txt']
29 | result = SettingsParser.get_console_log_name(settings)
30 | self.assertEqual('Console Log.txt', result)
31 |
32 |
33 | if __name__ == '__main__':
34 | unittest.main()
35 |
--------------------------------------------------------------------------------
/utest/resources/robotdata/Example.robot:
--------------------------------------------------------------------------------
1 | *** Variables ***
2 | ${scalar} 1.234 # comentário
3 | @{list} 2 a 4 b
4 | &{dicionario} def=inição sig=nificado
5 | ${new var} 3 # esta é nova
6 |
7 | *** Test Cases ***
8 | test
9 | ${testvar}= Set Variable ${scalar}
10 | Set Test Variable ${testvar}
11 | # DEBUG
12 | For Loop Example
13 | Log Many &{dicionario}
14 | Log Variables @{TEST_TAGS}
15 |
16 | Téste líçhadõ
17 | Should Be Equal As Integers 3 3
18 | Log To Console Vamos meter isto em Pausa. Linha comentário
19 | BuiltIn.Comment PAUSE
20 | Opção Primeirª12 ${30}
21 |
22 | *** Keywords ***
23 | For Loop Example
24 | : FOR ${index} IN RANGE 0 5
25 | \ ${testvar} = Evaluate 1 + ${index}
26 | \ ${total} = Keyword that will use testvar
27 | Log ${scalar}
28 |
29 | Keyword that will use testvar
30 | ${returntotal} = Evaluate ${testvar}+1
31 | Log Many ${scalar} @{list} &{dicionario} ${new var}
32 | &{dicionario}= No Operation
33 | @{list}= No Operation
34 | [Return] ${returntotal}
35 |
36 | Opção Primeirª12
37 | [Arguments] ${arg1}
38 | Log Pálavrâs ComAÇENTOS
39 | Sleep 0.4 seconds
40 | Run Keyword If ${arg1} < 6 Return From Keyword
41 | Opção Primeirª12 ${arg1-1}
42 |
--------------------------------------------------------------------------------
/src/robotide/lib/robot/reporting/outputwriter.py:
--------------------------------------------------------------------------------
1 | # Copyright 2008-2015 Nokia Networks
2 | # Copyright 2016- Robot Framework Foundation
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | from robotide.lib.robot.output.xmllogger import XmlLogger
17 |
18 |
19 | class OutputWriter(XmlLogger):
20 |
21 | def __init__(self, output, rpa=False):
22 | XmlLogger.__init__(self, output, rpa=rpa, generator='Rebot')
23 |
24 | def start_message(self, msg):
25 | self._write_message(msg)
26 |
27 | def visit_keyword(self, kw):
28 | self.start_keyword(kw)
29 | for child in kw.children:
30 | child.visit(self)
31 | self.end_keyword(kw)
32 |
33 | def close(self):
34 | self._writer.end('robot')
35 | self._writer.close()
36 |
37 | def end_result(self, result):
38 | self.close()
39 |
--------------------------------------------------------------------------------
/src/robotide/widgets/font.py:
--------------------------------------------------------------------------------
1 | # Copyright 2008-2015 Nokia Networks
2 | # Copyright 2016- Robot Framework Foundation
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | import wx
17 |
18 |
19 | class Font(object):
20 | help = property(lambda self: self._get_font(scale=-2))
21 | fixed = property(lambda self: self._get_font(family=wx.FONTFAMILY_MODERN))
22 | fixed_log = property(lambda self:
23 | self._get_font(scale=-2, family=wx.FONTFAMILY_MODERN))
24 | underlined = property(lambda self: self._get_font(underlined=True))
25 |
26 | def _get_font(self, scale=0, family=wx.FONTFAMILY_DEFAULT, underlined=False):
27 | size = wx.SystemSettings.GetFont(wx.SYS_SYSTEM_FONT).GetPointSize() + scale
28 | return wx.Font( size, family, wx.FONTSTYLE_NORMAL,
29 | wx.FONTWEIGHT_NORMAL, underline=underlined)
30 |
--------------------------------------------------------------------------------
/src/robotide/lib/robot/utils/platform.py:
--------------------------------------------------------------------------------
1 | # Copyright 2008-2015 Nokia Networks
2 | # Copyright 2016- Robot Framework Foundation
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | import os
17 | import re
18 | import sys
19 |
20 |
21 | java_match = re.match(r'java(\d+)\.(\d+)\.(\d+)', sys.platform)
22 | if java_match:
23 | JYTHON = True
24 | JAVA_VERSION = tuple(int(i) for i in java_match.groups())
25 | else:
26 | JYTHON = False
27 | JAVA_VERSION = (0, 0, 0)
28 | PY_VERSION = sys.version_info[:3]
29 | PY2 = PY_VERSION[0] == 2
30 | PY3 = not PY2
31 | IRONPYTHON = sys.platform == 'cli'
32 | PYPY = 'PyPy' in sys.version
33 | UNIXY = os.sep == '/'
34 | WINDOWS = not UNIXY
35 |
36 | RERAISED_EXCEPTIONS = (KeyboardInterrupt, SystemExit, MemoryError)
37 | if JYTHON:
38 | from java.lang import OutOfMemoryError
39 | RERAISED_EXCEPTIONS += (OutOfMemoryError,)
40 |
--------------------------------------------------------------------------------
/src/robotide/utils/versioncomparator.py:
--------------------------------------------------------------------------------
1 | # Copyright 2008-2015 Nokia Networks
2 | # Copyright 2016- Robot Framework Foundation
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | try:
17 | from packaging.version import parse as parse_version
18 | except ImportError as e:
19 | print("RIDE cannot verify versions upgrade because of missing packages."
20 | "You can install missing package with:\npip install packaging\n")
21 | raise e
22 |
23 |
24 | def cmp_versions(version1, version2):
25 | if version1 is None:
26 | if version2 is None:
27 | return 0
28 | else:
29 | return -1
30 | if version2 is None:
31 | return 1
32 | if parse_version(version1) == parse_version(version2):
33 | return 0
34 | elif parse_version(version1) > parse_version(version2):
35 | return 1
36 | return -1
37 |
--------------------------------------------------------------------------------
/src/robotide/application/debugconsole.py:
--------------------------------------------------------------------------------
1 | # Copyright 2008-2015 Nokia Networks
2 | # Copyright 2016- Robot Framework Foundation
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | import sys
17 | import threading
18 | import traceback
19 |
20 |
21 | def _print_stacks():
22 | id2name = dict((th.ident, th.name) for th in threading.enumerate())
23 | for thread_id, stack in sys._current_frames().items():
24 | print(id2name[thread_id])
25 | traceback.print_stack(f=stack)
26 |
27 |
28 | def start(ride):
29 | import code
30 | help_string = """\
31 | RIDE - access to the running application
32 | print_stacks() - print current stack traces
33 | """
34 | console = code.InteractiveConsole(
35 | locals={'RIDE': ride, 'print_stacks': _print_stacks})
36 | thread = threading.Thread(target=lambda: console.interact(help_string))
37 | thread.start()
38 |
--------------------------------------------------------------------------------
/src/robotide/lib/robot/libdocpkg/output.py:
--------------------------------------------------------------------------------
1 | # Copyright 2008-2015 Nokia Networks
2 | # Copyright 2016- Robot Framework Foundation
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | import os
17 |
18 | from robotide.lib.robot.utils import file_writer
19 |
20 |
21 | class LibdocOutput(object):
22 |
23 | def __init__(self, output_path, format):
24 | self._output_path = output_path
25 | self._format = format.upper()
26 | self._output_file = None
27 |
28 | def __enter__(self):
29 | if self._format == 'HTML':
30 | self._output_file = file_writer(self._output_path)
31 | return self._output_file
32 | return self._output_path
33 |
34 | def __exit__(self, *exc_info):
35 | if self._output_file:
36 | self._output_file.close()
37 | if any(exc_info):
38 | os.remove(self._output_path)
39 |
--------------------------------------------------------------------------------
/src/robotide/lib/robot/running/timeouts/posix.py:
--------------------------------------------------------------------------------
1 | # Copyright 2008-2015 Nokia Networks
2 | # Copyright 2016- Robot Framework Foundation
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | from signal import setitimer, signal, SIGALRM, ITIMER_REAL
17 |
18 |
19 | class Timeout(object):
20 |
21 | def __init__(self, timeout, error):
22 | self._timeout = timeout
23 | self._error = error
24 |
25 | def execute(self, runnable):
26 | self._start_timer()
27 | try:
28 | return runnable()
29 | finally:
30 | self._stop_timer()
31 |
32 | def _start_timer(self):
33 | signal(SIGALRM, self._raise_timeout_error)
34 | setitimer(ITIMER_REAL, self._timeout)
35 |
36 | def _raise_timeout_error(self, signum, frame):
37 | raise self._error
38 |
39 | def _stop_timer(self):
40 | setitimer(ITIMER_REAL, 0)
41 |
--------------------------------------------------------------------------------
/src/robotide/widgets/text.py:
--------------------------------------------------------------------------------
1 | # Copyright 2008-2015 Nokia Networks
2 | # Copyright 2016- Robot Framework Foundation
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | import wx
17 | from wx import Size
18 |
19 |
20 | class TextField(wx.TextCtrl):
21 |
22 | def __init__(self, parent, initial_value, process_enters=False, size=Size(200, 32)):
23 | flags = wx.TE_PROCESS_ENTER|wx.TE_LEFT if process_enters else wx.TE_LEFT
24 | wx.TextCtrl.__init__(self, parent, size=size, style=flags|wx.TE_NOHIDESEL)
25 | self.SetValue(initial_value)
26 |
27 |
28 | class SearchField(wx.SearchCtrl):
29 |
30 | def __init__(self, parent, initial_value, process_enters=False, size=Size(200, 32)):
31 | flags = wx.TE_PROCESS_ENTER|wx.TE_LEFT if process_enters else wx.TE_LEFT
32 | wx.SearchCtrl.__init__(self, parent, size=size, style=flags|wx.TE_NOHIDESEL)
33 | self.SetValue(initial_value)
34 |
--------------------------------------------------------------------------------
/src/robotide/widgets/label.py:
--------------------------------------------------------------------------------
1 | # Copyright 2008-2015 Nokia Networks
2 | # Copyright 2016- Robot Framework Foundation
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | import wx
17 |
18 | from .font import Font
19 |
20 |
21 | class Label(wx.StaticText):
22 |
23 | def __init__(self, parent, id=-1, label='', **args):
24 | wx.StaticText.__init__(self, parent=parent, id=id, label=label.replace('&', '&&'), **args)
25 |
26 | def SetLabel(self, label):
27 | wx.StaticText.SetLabel(self, label.replace('&', '&&'))
28 |
29 |
30 | class HeaderLabel(Label):
31 |
32 | def __init__(self, parent, label):
33 | Label.__init__(self, parent, label=label)
34 | self.SetFont(wx.Font(wx.FontInfo(12).Family(wx.FONTFAMILY_SWISS).Bold()))
35 |
36 |
37 | class HelpLabel(Label):
38 |
39 | def __init__(self, parent, label):
40 | Label.__init__(self, parent, label=label)
41 | self.SetFont(Font().help)
42 |
--------------------------------------------------------------------------------
/src/robotide/namespace/embeddedargs.py:
--------------------------------------------------------------------------------
1 | # Copyright 2008-2015 Nokia Networks
2 | # Copyright 2016- Robot Framework Foundation
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | from robotide.lib.robot.running.arguments.embedded import EmbeddedArgumentParser
17 |
18 |
19 | class EmbeddedArgsHandler(object):
20 |
21 | def __init__(self, keyword):
22 | if keyword.arguments:
23 | # raise TypeError('Cannot have normal arguments')
24 | print('DEBUG: Found normal arguments in embedded arguments keyword.')
25 | # print(f'DEBUG: embeddedargs.py EmbeddedArgsHandler keyword={keyword.name} longname={keyword.longname}')
26 | self.name_regexp, self.embedded_args = EmbeddedArgumentParser().parse(keyword.name)
27 | if hasattr(keyword, 'longname'):
28 | self.longname_regexp, _ = EmbeddedArgumentParser().parse(keyword.longname)
29 | if not self.embedded_args:
30 | raise TypeError('Must have embedded arguments')
31 |
--------------------------------------------------------------------------------
/src/robotide/lib/robot/output/console/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright 2008-2015 Nokia Networks
2 | # Copyright 2016- Robot Framework Foundation
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | from robotide.lib.robot.errors import DataError
17 |
18 | from .dotted import DottedOutput
19 | from .quiet import NoOutput, QuietOutput
20 | from .verbose import VerboseOutput
21 |
22 |
23 | def ConsoleOutput(type='verbose', width=78, colors='AUTO', markers='AUTO',
24 | stdout=None, stderr=None):
25 | upper = type.upper()
26 | if upper == 'VERBOSE':
27 | return VerboseOutput(width, colors, markers, stdout, stderr)
28 | if upper == 'DOTTED':
29 | return DottedOutput(width, colors, stdout, stderr)
30 | if upper == 'QUIET':
31 | return QuietOutput(colors, stderr)
32 | if upper == 'NONE':
33 | return NoOutput()
34 | raise DataError("Invalid console output type '%s'. Available "
35 | "'VERBOSE', 'DOTTED', 'QUIET' and 'NONE'." % type)
36 |
--------------------------------------------------------------------------------
/src/robotide/ui/searchdots.py:
--------------------------------------------------------------------------------
1 | # Copyright 2008-2015 Nokia Networks
2 | # Copyright 2016- Robot Framework Foundation
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | import wx
17 |
18 |
19 | class DottedSearch(object):
20 | """Class that can be used to make Search dots...
21 |
22 | parent - the UI component that the timer should be bound to
23 |
24 | callback - function that will receive timer events in UI thread
25 | argument to callback is string containing dots '.', '..'. '...' etc.
26 |
27 | """
28 |
29 | def __init__(self, parent, callback):
30 | self._timer = wx.Timer(parent)
31 | self._dots = 0
32 | self._callback = callback
33 | parent.Bind(wx.EVT_TIMER, self._timer_event)
34 |
35 | def _timer_event(self, event):
36 | self._dots = (self._dots + 1) % 5
37 | self._callback('.'*self._dots)
38 |
39 | def start(self):
40 | self._timer.Start(500)
41 |
42 | def stop(self):
43 | self._timer.Stop()
44 |
--------------------------------------------------------------------------------
/src/robotide/lib/robot/utils/robotenv.py:
--------------------------------------------------------------------------------
1 | # Copyright 2008-2015 Nokia Networks
2 | # Copyright 2016- Robot Framework Foundation
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | import os
17 |
18 | from .encoding import system_decode as decode, system_encode as encode
19 |
20 |
21 | def get_env_var(name, default=None):
22 | try:
23 | value = os.environ[encode(name)]
24 | except KeyError:
25 | return default
26 | else:
27 | return decode(value)
28 |
29 |
30 | def set_env_var(name, value):
31 | os.environ[encode(name)] = encode(value)
32 |
33 |
34 | def del_env_var(name):
35 | value = get_env_var(name)
36 | if value is not None:
37 | del os.environ[encode(name)]
38 | return value
39 |
40 |
41 | def get_env_vars(upper=os.sep != '/'):
42 | # by default, name is upper-cased on Windows regardless interpreter
43 | return dict((name if not upper else name.upper(), get_env_var(name))
44 | for name in (decode(name) for name in os.environ))
45 |
--------------------------------------------------------------------------------