Generic automation framework for acceptance testing and RPA
This report presents the forensic synthetic code analysis of robotframework/robotframework, a Python project with 11,751 GitHub stars. SynthScan v2.0 examined 195,206 lines of code across 955 source files, recording 2552 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 13.9 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 2552 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | utest/run_jasmine.py | 48 | def download_jasmine_reporters(): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 49 | def test_python_library_with_args(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 59 | def test_module_library_with_args(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 67 | def test_dynamic_python_library(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 78 | def test_import_python_class_from_module(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 82 | def test_import_python_module(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 87 | def test_import_python_module_from_module(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 95 | def test_import_non_existing_module(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 105 | def test_import_non_existing_class_from_existing_module(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 164 | def test_python_library_without_init(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 167 | def test_python_library_with_init(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 170 | def test_new_style_class_without_init(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 173 | def test_new_style_class_with_init(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 179 | def test_library_with_metaclass(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 182 | def test_library_with_zero_len(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 279 | def test_start_suite_flushes_instance(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 283 | def test_start_test_or_end_test_do_not_flush_instance(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 293 | def test_end_suite_restores_previous_instance_with_one_suite(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 427 | def test_get_keyword_doc_and_args_are_ignored_if_not_callable(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 433 | def test_handler_is_not_created_if_get_keyword_doc_fails(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 439 | def test_handler_is_not_created_if_get_keyword_args_fails(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 445 | def test_arguments_without_kwargs(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 481 | def test_doc_from_class_definition(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 484 | def test_doc_from_dynamic_method(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 487 | def test_dynamic_doc_overrides_class_doc(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 490 | def test_failure_in_dynamic_resolving_of_doc(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 510 | def test_doc_from_dynamic_method(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 513 | def test_dynamic_doc_overrides_method_doc(self): | CODE |
| LOW⚡ | utest/running/test_testlibrary.py | 516 | def test_failure_in_dynamic_resolving_of_doc(self): | CODE |
| LOW | utest/running/test_testlibrary.py | 143 | def test_task_scope_is_mapped_to_test_scope(self): | CODE |
| LOW | utest/running/test_testlibrary.py | 146 | def test_invalid_scope_is_mapped_to_test_scope(self): | CODE |
| LOW | utest/running/test_testlibrary.py | 197 | def test_version_in_class_library(self): | CODE |
| LOW | utest/running/test_testlibrary.py | 201 | def test_version_in_module_library(self): | CODE |
| LOW | utest/running/test_testlibrary.py | 213 | def test_doc_format_in_python_libarary(self): | CODE |
| LOW | utest/running/test_testlibrary.py | 240 | def _verify_end_suite_restores_previous_instance(self, prev_inst): | CODE |
| LOW | utest/running/test_testlibrary.py | 331 | def test_different_instances_for_all_tests(self): | CODE |
| LOW | utest/running/test_testlibrary.py | 378 | def test_non_global_dynamic_keywords(self): | CODE |
| LOW | utest/running/test_testlibrary.py | 384 | def test_global_dynamic_keywords(self): | CODE |
| LOW | utest/running/test_testlibrary.py | 397 | def test_global_handlers_are_created_only_once(self): | CODE |
| LOW | utest/running/test_testlibrary.py | 414 | def test_get_keyword_doc_is_used_if_present(self): | CODE |
| LOW | utest/running/test_testlibrary.py | 456 | def test_arguments_with_kwargs(self): | CODE |
| LOW⚡ | utest/running/test_runkwregister.py | 45 | def test_register_run_keyword_method_with_kw_name_and_arg_count(self): | CODE |
| LOW⚡ | utest/running/test_runkwregister.py | 48 | def test_get_arg_count_with_non_existing_keyword(self): | CODE |
| LOW⚡ | utest/running/test_runkwregister.py | 51 | def test_get_arg_count_with_non_existing_library(self): | CODE |
| LOW | utest/running/test_signalhandler.py | 13 | def assert_signal_handler_equal(signum, expected): | CODE |
| LOW | utest/running/test_signalhandler.py | 67 | def test_failure_but_no_warning_when_not_in_main_thread(self): | CODE |
| LOW | utest/running/test_signalhandler.py | 90 | def test_restore_when_no_failures(self): | CODE |
| LOW | utest/running/test_signalhandler.py | 97 | def test_restore_when_failure(self): | CODE |
| LOW | utest/running/test_signalhandler.py | 110 | def test_registered_outside_python(self): | CODE |
| LOW | utest/running/test_typeinfo.py | 91 | def test_union_with_one_type_is_reduced_to_the_type(self): | CODE |
| LOW | utest/running/test_typeinfo.py | 97 | def test_empty_union_not_allowed(self): | CODE |
| LOW | utest/running/test_typeinfo.py | 136 | def test_generics_without_params(self): | CODE |
| LOW | utest/running/test_typeinfo.py | 141 | def test_parameterized_special_form(self): | CODE |
| LOW | utest/running/test_typeinfo.py | 163 | def test_invalid_sequence_params(self): | CODE |
| LOW | utest/running/test_typeinfo.py | 173 | def test_invalid_mapping_params(self): | CODE |
| LOW | utest/running/test_typeinfo.py | 187 | def test_invalid_tuple_params(self): | CODE |
| LOW | utest/running/test_typeinfo.py | 201 | def test_params_with_invalid_type(self): | CODE |
| LOW | utest/running/test_typeinfo.py | 212 | def test_parameters_with_unknown_type(self): | CODE |
| LOW | utest/running/test_typeinfo.py | 219 | def test_parameters_with_custom_generic(self): | CODE |
| LOW | utest/running/test_typeinfo.py | 252 | def test_from_variable_list_and_dict(self): | CODE |
| 1340 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tasks.py | 21 | CODE | |
| LOW | utest/libdoc/test_libdoc.py | 31 | CODE | |
| LOW | …/testdata/standard_libraries/datetime/datesandtimes.py | 2 | CODE | |
| LOW | atest/testdata/standard_libraries/remote/arguments.py | 2 | CODE | |
| LOW | atest/testdata/keywords/KeywordsImplementedInC.py | 1 | CODE | |
| LOW | …testdata/keywords/type_conversion/FutureAnnotations.py | 1 | CODE | |
| LOW | …/testdata/keywords/type_conversion/KeywordDecorator.py | 5 | CODE | |
| LOW | …eywords/type_conversion/KeywordDecoratorWithAliases.py | 2 | CODE | |
| LOW | …eywords/type_conversion/KeywordDecoratorWithAliases.py | 2 | CODE | |
| LOW | …eywords/type_conversion/KeywordDecoratorWithAliases.py | 2 | CODE | |
| LOW | …eywords/type_conversion/KeywordDecoratorWithAliases.py | 3 | CODE | |
| LOW | …ata/keywords/type_conversion/AnnotationsWithAliases.py | 2 | CODE | |
| LOW | …ata/keywords/type_conversion/AnnotationsWithAliases.py | 2 | CODE | |
| LOW | …ata/keywords/type_conversion/AnnotationsWithAliases.py | 2 | CODE | |
| LOW | …ata/keywords/type_conversion/AnnotationsWithAliases.py | 3 | CODE | |
| LOW | atest/testdata/keywords/type_conversion/Annotations.py | 1 | CODE | |
| LOW | atest/testdata/keywords/type_conversion/Annotations.py | 6 | CODE | |
| LOW | …estdata/test_libraries/ImportRobotModuleTestLibrary.py | 11 | CODE | |
| LOW | …estdata/test_libraries/ImportRobotModuleTestLibrary.py | 3 | CODE | |
| LOW | …st/testdata/test_libraries/extend_decorated_library.py | 3 | CODE | |
| LOW | …st/testdata/test_libraries/extend_decorated_library.py | 3 | CODE | |
| LOW | …st/testdata/test_libraries/extend_decorated_library.py | 3 | CODE | |
| LOW | atest/resources/atest_variables.py | 5 | CODE | |
| LOW | atest/resources/atest_variables.py | 5 | CODE | |
| LOW | atest/testresources/consoles/extend_builtin.py | 1 | CODE | |
| LOW | src/robot/__init__.py | 43 | CODE | |
| LOW | src/robot/__init__.py | 43 | CODE | |
| LOW | src/robot/__init__.py | 44 | CODE | |
| LOW | src/robot/__init__.py | 44 | CODE | |
| LOW | src/robot/running/librarykeywordrunner.py | 32 | CODE | |
| LOW | src/robot/running/invalidkeyword.py | 20 | CODE | |
| LOW | src/robot/running/librarykeyword.py | 19 | CODE | |
| LOW | src/robot/running/librarykeyword.py | 19 | CODE | |
| LOW | src/robot/running/librarykeyword.py | 22 | CODE | |
| LOW | src/robot/running/librarykeyword.py | 34 | CODE | |
| LOW | src/robot/running/librarykeyword.py | 38 | CODE | |
| LOW | src/robot/running/librarykeyword.py | 40 | CODE | |
| LOW | src/robot/running/keywordimplementation.py | 17 | CODE | |
| LOW | src/robot/running/keywordimplementation.py | 18 | CODE | |
| LOW | src/robot/running/keywordimplementation.py | 18 | CODE | |
| LOW | src/robot/running/keywordimplementation.py | 26 | CODE | |
| LOW | src/robot/running/keywordimplementation.py | 29 | CODE | |
| LOW | src/robot/running/keywordimplementation.py | 31 | CODE | |
| LOW | src/robot/running/keywordimplementation.py | 32 | CODE | |
| LOW | src/robot/running/keywordimplementation.py | 33 | CODE | |
| LOW | src/robot/running/keywordimplementation.py | 34 | CODE | |
| LOW | src/robot/running/docstringparser.py | 17 | CODE | |
| LOW | src/robot/running/docstringparser.py | 17 | CODE | |
| LOW | src/robot/running/userkeywordrunner.py | 33 | CODE | |
| LOW | src/robot/running/__init__.py | 117 | CODE | |
| LOW | src/robot/running/__init__.py | 117 | CODE | |
| LOW | src/robot/running/__init__.py | 117 | CODE | |
| LOW | src/robot/running/__init__.py | 117 | CODE | |
| LOW | src/robot/running/__init__.py | 123 | CODE | |
| LOW | src/robot/running/__init__.py | 123 | CODE | |
| LOW | src/robot/running/__init__.py | 123 | CODE | |
| LOW | src/robot/running/__init__.py | 128 | CODE | |
| LOW | src/robot/running/__init__.py | 129 | CODE | |
| LOW | src/robot/running/__init__.py | 130 | CODE | |
| LOW | src/robot/running/__init__.py | 131 | CODE | |
| 587 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | doc/api/conf.py | 1 | # -*- coding: utf-8 -*- | COMMENT |
| LOW | doc/api/conf.py | 61 | # The full version, including alpha/beta/rc tags. | COMMENT |
| LOW | doc/api/conf.py | 81 | # If true, '()' will be appended to :func: etc. cross-reference text. | COMMENT |
| LOW | doc/api/conf.py | 101 | # The theme to use for HTML and HTML Help pages. See the documentation for | COMMENT |
| LOW | doc/api/conf.py | 121 | # of the sidebar. | COMMENT |
| LOW | doc/api/conf.py | 141 | COMMENT | |
| LOW | doc/api/conf.py | 161 | # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. | COMMENT |
| LOW | doc/api/conf.py | 201 | #latex_logo = None | COMMENT |
| LOW | src/robot/run.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | src/robot/rebot.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | src/robot/version.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/__init__.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/errors.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/libdoc.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | src/robot/__main__.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | src/robot/testdoc.py | 1 | #!/usr/bin/env python | COMMENT |
| LOW | src/robot/pythonpathsetter.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/testlibraries.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/librarykeywordrunner.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/invalidkeyword.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/signalhandler.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/librarykeyword.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/runkwregister.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/importer.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/keywordimplementation.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/docstringparser.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/randomizer.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/dynamicmethods.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/userkeywordrunner.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/__init__.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/statusreporter.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/bodyrunner.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/model.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/outputcapture.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/outputcapture.py | 101 | # Avoid ValueError at program exit when logging module tries to call | COMMENT |
| LOW | src/robot/running/context.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/resourcemodel.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/namespace.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/keywordfinder.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/suiterunner.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/libraryscopes.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/status.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/timeouts/runner.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/timeouts/nosupport.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/timeouts/timeout.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/timeouts/__init__.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/timeouts/posix.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/timeouts/windows.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/builder/builders.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/builder/restreader.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/builder/transformers.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/builder/__init__.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/builder/parsers.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/builder/settings.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/arguments/typeinfoparser.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/arguments/argumentvalidator.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/arguments/argumentspec.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/arguments/typeconverters.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/arguments/validators.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| LOW | src/robot/running/arguments/argumentparser.py | 1 | # Copyright 2008-2015 Nokia Networks | COMMENT |
| 199 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tasks.py | 94 | except Exception: | STRING |
| LOW⚡ | utest/running/test_timeouts.py | 150 | except Exception: | CODE |
| MEDIUM | utest/running/test_timeouts.py | 147 | def test_timeout_exceeded_not_catchable_as_exception(self): | CODE |
| LOW | utest/utils/test_error.py | 40 | except Exception: | CODE |
| LOW⚡ | utest/utils/test_error.py | 62 | except Exception: | CODE |
| LOW⚡ | utest/utils/test_error.py | 65 | except Exception: | CODE |
| LOW⚡ | utest/utils/test_error.py | 68 | except Exception as err: | CODE |
| LOW⚡ | utest/utils/test_error.py | 77 | except Exception as err: | CODE |
| LOW | utest/utils/test_error.py | 144 | except Exception as error: | STRING |
| MEDIUM | utest/utils/test_error.py | 59 | def test_chaining(self): | CODE |
| MEDIUM | utest/utils/test_error.py | 71 | def test_chaining_without_traceback(self): | CODE |
| MEDIUM | utest/utils/test_error.py | 81 | def test_cause(self): | CODE |
| LOW | utest/model/test_modelobject.py | 176 | except Exception: | CODE |
| MEDIUM | utest/model/test_modelobject.py | 171 | def _get_json_load_error(self, value): | CODE |
| LOW | atest/testdata/running/stopping_with_signal/Library.py | 13 | except Exception: | CODE |
| MEDIUM | atest/testdata/running/stopping_with_signal/Library.py | 10 | def swallow_exception(timeout=3): | CODE |
| LOW | atest/testdata/keywords/named_args/helper.py | 7 | except Exception as err: | CODE |
| MEDIUM | atest/testdata/keywords/named_args/helper.py | 4 | def get_result_or_error(*args): | CODE |
| LOW | atest/resources/TestCheckerLibrary.py | 184 | except Exception: | CODE |
| LOW⚡ | atest/testresources/testlibs/ExampleLibrary.py | 58 | except Exception: | CODE |
| LOW⚡ | atest/testresources/testlibs/ExampleLibrary.py | 60 | except Exception: | CODE |
| LOW⚡ | atest/testresources/testlibs/ExampleLibrary.py | 68 | except Exception as err: | CODE |
| LOW⚡ | atest/testresources/testlibs/ExampleLibrary.py | 70 | except Exception: | CODE |
| MEDIUM | atest/testresources/testlibs/ExampleLibrary.py | 54 | def implicitly_chained_exception(self): | CODE |
| MEDIUM | atest/testresources/testlibs/ExampleLibrary.py | 64 | def explicitly_chained_exception(self): | CODE |
| LOW | src/robot/running/testlibraries.py | 336 | except Exception: | CODE |
| LOW | src/robot/running/testlibraries.py | 510 | except Exception: | CODE |
| LOW⚡ | src/robot/running/testlibraries.py | 542 | except Exception: # Attribute is invalid. Report. | CODE |
| LOW⚡ | src/robot/running/testlibraries.py | 552 | except Exception: | CODE |
| LOW⚡ | src/robot/running/testlibraries.py | 560 | except Exception: | CODE |
| MEDIUM | src/robot/running/testlibraries.py | 356 | def lineno(self) -> int: | CODE |
| MEDIUM | src/robot/running/testlibraries.py | 536 | def _is_explicitly_included(self, name, instance) -> bool: | CODE |
| LOW | src/robot/running/dynamicmethods.py | 57 | except Exception: | CODE |
| MEDIUM | src/robot/running/dynamicmethods.py | 50 | def __call__(self, *args, **kwargs): | CODE |
| LOW | src/robot/running/bodyrunner.py | 321 | except Exception: | CODE |
| LOW | src/robot/running/bodyrunner.py | 543 | except Exception: | CODE |
| LOW | src/robot/running/bodyrunner.py | 656 | except Exception: | CODE |
| MEDIUM | src/robot/running/bodyrunner.py | 94 | def _get_setup_teardown_runner(self, data, context): | CODE |
| MEDIUM | src/robot/running/bodyrunner.py | 410 | def _deprecate_different_lengths(self, values): | CODE |
| LOW | src/robot/running/builder/parsers.py | 225 | except Exception: | CODE |
| LOW | src/robot/running/arguments/typeconverters.py | 299 | except Exception: | CODE |
| LOW | src/robot/running/arguments/typeconverters.py | 408 | except Exception: | CODE |
| LOW | src/robot/running/arguments/typeconverters.py | 536 | except Exception: | CODE |
| LOW | src/robot/running/arguments/typeconverters.py | 718 | except Exception: | CODE |
| LOW | src/robot/running/arguments/typeconverters.py | 928 | except Exception: | CODE |
| MEDIUM | src/robot/running/arguments/typeconverters.py | 181 | def _literal_eval(self, value, expected, name=None): | CODE |
| MEDIUM | src/robot/running/arguments/typeconverters.py | 369 | def _convert(self, value): | CODE |
| MEDIUM | src/robot/running/arguments/typeconverters.py | 923 | def _convert(self, value): | CODE |
| LOW | src/robot/running/arguments/argumentparser.py | 62 | except Exception as err: | CODE |
| LOW | src/robot/running/arguments/argumentparser.py | 124 | except Exception: # Can raise pretty much anything | CODE |
| LOW | src/robot/running/arguments/argumentparser.py | 129 | except Exception: | CODE |
| MEDIUM | src/robot/running/arguments/argumentparser.py | 56 | def parse(self, method, name=None): | CODE |
| LOW | src/robot/running/arguments/typeinfo.py | 464 | except Exception: | CODE |
| MEDIUM | src/robot/running/arguments/typeinfo.py | 461 | def _get_type_hints(self, type) -> "dict[str, Any]": | CODE |
| LOW | src/robot/running/arguments/embedded.py | 211 | except Exception: | CODE |
| LOW | src/robot/result/resultbuilder.py | 100 | except Exception: | CODE |
| LOW | src/robot/result/resultbuilder.py | 113 | except Exception: | CODE |
| MEDIUM | src/robot/result/resultbuilder.py | 95 | def _json_result(source, include_keywords, flattened_keywords, rpa): | CODE |
| LOW | src/robot/libdocpkg/builder.py | 116 | except Exception: | CODE |
| MEDIUM | src/robot/libdocpkg/builder.py | 99 | def _build(self, builder, source): | CODE |
| 39 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | doc/userguide/src/ExecutingTestCases/log_failed.html | 757 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| CRITICAL | doc/userguide/src/ExecutingTestCases/log_skipped.html | 757 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| CRITICAL | doc/userguide/src/ExecutingTestCases/report_passed.html | 555 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| CRITICAL | doc/userguide/src/ExecutingTestCases/log_passed.html | 757 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| CRITICAL | doc/userguide/src/ExecutingTestCases/report_failed.html | 555 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| CRITICAL | doc/userguide/src/SupportingTools/ExampleLibrary.html | 949 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| CRITICAL | src/robot/htmldata/lib/jquery.min.js | 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tasks.py | 193 | CODE | |
| LOW | utest/run.py | 45 | CODE | |
| LOW | utest/running/test_run_model.py | 735 | CODE | |
| LOW | utest/result/test_resultmodel.py | 1158 | CODE | |
| LOW | utest/model/test_body.py | 111 | CODE | |
| LOW | utest/model/test_itemlist.py | 141 | CODE | |
| LOW | utest/model/test_tags.py | 460 | CODE | |
| LOW | utest/model/test_modelobject.py | 206 | CODE | |
| LOW | utest/api/test_zipsafe.py | 7 | CODE | |
| LOW | utest/parsing/parsing_test_utils.py | 9 | CODE | |
| LOW | utest/conf/test_settings.py | 85 | CODE | |
| LOW | …/testdata/standard_libraries/datetime/datesandtimes.py | 18 | CODE | |
| LOW | …utput/listener_interface/body_items_v3/ChangeStatus.py | 1 | CODE | |
| LOW | atest/testresources/listeners/VerifyAttributes.py | 48 | CODE | |
| LOW | doc/userguide/ug2html.py | 190 | CODE | |
| LOW | doc/schema/libdoc_json_schema.py | 28 | CODE | |
| LOW | src/robot/testdoc.py | 230 | CODE | |
| LOW | src/robot/running/testlibraries.py | 428 | CODE | |
| LOW | src/robot/running/docstringparser.py | 125 | CODE | |
| LOW | src/robot/running/userkeywordrunner.py | 87 | CODE | |
| LOW | src/robot/running/bodyrunner.py | 136 | CODE | |
| LOW | src/robot/running/bodyrunner.py | 472 | CODE | |
| LOW | src/robot/running/bodyrunner.py | 586 | CODE | |
| LOW | src/robot/running/namespace.py | 428 | CODE | |
| LOW | src/robot/running/namespace.py | 444 | CODE | |
| LOW | src/robot/running/namespace.py | 511 | CODE | |
| LOW | src/robot/running/suiterunner.py | 147 | CODE | |
| LOW | src/robot/running/builder/builders.py | 270 | CODE | |
| LOW | src/robot/running/builder/transformers.py | 297 | CODE | |
| LOW | src/robot/running/builder/transformers.py | 457 | CODE | |
| LOW | src/robot/running/builder/parsers.py | 131 | CODE | |
| LOW | src/robot/running/arguments/typeconverters.py | 335 | CODE | |
| LOW | src/robot/running/arguments/argumentparser.py | 75 | CODE | |
| LOW | src/robot/running/arguments/argumentparser.py | 139 | CODE | |
| LOW | src/robot/running/arguments/argumentconverter.py | 65 | CODE | |
| LOW | src/robot/running/arguments/typeinfo.py | 320 | CODE | |
| LOW | src/robot/running/arguments/argumentresolver.py | 63 | CODE | |
| LOW | src/robot/result/resultbuilder.py | 193 | CODE | |
| LOW | src/robot/libdocpkg/jsonbuilder.py | 78 | CODE | |
| LOW | src/robot/libdocpkg/xmlbuilder.py | 88 | CODE | |
| LOW | src/robot/output/console/__init__.py | 25 | CODE | |
| LOW | src/robot/libraries/Telnet.py | 1170 | CODE | |
| LOW | src/robot/libraries/Process.py | 206 | CODE | |
| LOW | src/robot/libraries/BuiltIn.py | 1723 | CODE | |
| LOW | src/robot/libraries/BuiltIn.py | 2757 | CODE | |
| LOW | src/robot/libraries/BuiltIn.py | 3576 | CODE | |
| LOW | src/robot/utils/argumentparser.py | 206 | CODE | |
| LOW | src/robot/utils/argumentparser.py | 376 | CODE | |
| LOW | src/robot/utils/robottime.py | 86 | CODE | |
| LOW | src/robot/variables/evaluation.py | 83 | CODE | |
| LOW | src/robot/variables/evaluation.py | 139 | CODE | |
| LOW | src/robot/variables/filesetter.py | 110 | CODE | |
| LOW | src/robot/variables/search.py | 210 | CODE | |
| LOW | src/robot/model/testsuite.py | 230 | CODE | |
| LOW | src/robot/parsing/lexer/blocklexers.py | 420 | CODE | |
| LOW | src/robot/parsing/lexer/tokenizer.py | 98 | CODE | |
| LOW | src/robot/parsing/model/statements.py | 1176 | CODE | |
| LOW | src/robot/parsing/model/statements.py | 1394 | CODE | |
| LOW | src/robot/conf/settings.py | 322 | CODE | |
| LOW | src/robot/conf/languages.py | 78 | CODE | |
| 1 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | utest/htmldata/test_jsonwriter.py | 56 | self._test({"nested": [-1, {42: None}]}, '{"nested":[-1,{42:null}]}') | CODE |
| HIGH⚡ | utest/model/test_modelobject.py | 90 | obj = Example.from_json('{"a": null, "b": 42, "c": true}') | CODE |
| HIGH⚡ | utest/model/test_modelobject.py | 121 | obj = Example.from_json(b'{"a": null, "b": 42}') | CODE |
| HIGH⚡ | utest/model/test_modelobject.py | 126 | file = io.StringIO('{"a": null, "b": 42, "c": "åäö"}') | CODE |
| HIGH⚡ | utest/model/test_modelobject.py | 135 | file.write('{"a": null, "b": 42, "c": "åäö"}') | CODE |
| HIGH⚡ | src/robot/libraries/BuiltIn.py | 1728 | return item.length(), "item.length()" | STRING |
| HIGH | src/robot/variables/scopes.py | 242 | ("${null}", None), | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/robot/running/model.py | 0 | a shortcut to configure a suite using one method call. can only be used with the root test suite. :param options: passed | STRING |
| HIGH | src/robot/result/model.py | 0 | a shortcut to configure a suite using one method call. can only be used with the root test suite. :param options: passed | STRING |
| HIGH | src/robot/model/testsuite.py | 0 | a shortcut to configure a suite using one method call. can only be used with the root test suite. :param options: passed | STRING |
| HIGH | src/robot/model/testcase.py | 0 | :mod:`visitor interface <robot.model.visitor>` entry-point. | STRING |
| HIGH | src/robot/model/message.py | 0 | :mod:`visitor interface <robot.model.visitor>` entry-point. | STRING |
| HIGH | src/robot/model/keyword.py | 0 | :mod:`visitor interface <robot.model.visitor>` entry-point. | STRING |
| HIGH | src/robot/model/testsuite.py | 0 | :mod:`visitor interface <robot.model.visitor>` entry-point. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | utest/reporting/test_jsmodelbuilders.py | 352 | CODE | |
| LOW | utest/reporting/test_jsmodelbuilders.py | 391 | CODE | |
| LOW | utest/reporting/test_jsmodelbuilders.py | 412 | CODE | |
| LOW | src/robot/libdoc.py | 186 | CODE | |
| LOW | src/robot/running/keywordimplementation.py | 48 | CODE | |
| LOW | src/robot/running/model.py | 197 | CODE | |
| LOW | src/robot/running/model.py | 655 | CODE | |
| LOW | src/robot/running/resourcemodel.py | 195 | CODE | |
| LOW | src/robot/running/builder/builders.py | 63 | CODE | |
| LOW | src/robot/running/arguments/argumentspec.py | 44 | CODE | |
| LOW | src/robot/reporting/jsmodelbuilders.py | 221 | CODE | |
| LOW | src/robot/result/model.py | 343 | CODE | |
| LOW | src/robot/result/model.py | 407 | CODE | |
| LOW | src/robot/result/model.py | 475 | CODE | |
| LOW | src/robot/result/model.py | 531 | CODE | |
| LOW | src/robot/result/model.py | 590 | CODE | |
| LOW | src/robot/result/model.py | 806 | CODE | |
| LOW | src/robot/result/model.py | 1012 | CODE | |
| LOW | src/robot/result/model.py | 1061 | CODE | |
| LOW | src/robot/libdocpkg/model.py | 34 | CODE | |
| LOW | src/robot/libdocpkg/model.py | 157 | CODE | |
| LOW | src/robot/libraries/Telnet.py | 287 | CODE | |
| LOW | src/robot/libraries/Telnet.py | 383 | CODE | |
| LOW | src/robot/libraries/Telnet.py | 537 | CODE | |
| LOW | src/robot/libraries/Process.py | 169 | CODE | |
| LOW | src/robot/libraries/Process.py | 636 | CODE | |
| LOW | src/robot/libraries/Process.py | 707 | CODE | |
| LOW | src/robot/libraries/BuiltIn.py | 687 | CODE | |
| LOW | src/robot/utils/argumentparser.py | 63 | CODE | |
| LOW | src/robot/model/configurer.py | 24 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | utest/running/test_docstringparser.py | 57 | ## Empty - - - ## Documentation only Doc Some more documentation - - - doc: | Doc Some more documentation # | STRING |
| HIGH | atest/testdata/libdoc/DocStringParsing.py | 9 | Example with *everything*! This is the second paragraph. We also have an indented example: | STRING |
| HIGH | src/robot/utils/application.py | 81 | Public interface for parsing command line arguments. :param cli_args: Command line arguments as a list | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …est/testdata/core/resources_and_variables/variables.py | 1 | __all__ = ["variables", "LIST__valid_list"] | CODE |
| LOW | …stdata/standard_libraries/builtin/broken_containers.py | 7 | __all__ = ["BROKEN_ITERABLE", "BROKEN_SEQUENCE", "BROKEN_MAPPING"] | CODE |
| LOW | atest/testdata/variables/extended_assign_vars.py | 1 | __all__ = ["VAR"] | CODE |
| LOW | atest/testdata/libdoc/BackwardsCompatibility.py | 13 | __all__ = ["simple", "arguments", "types", "special_types", "union"] | CODE |
| LOW | atest/testdata/libdoc/Decorators.py | 3 | __all__ = ["keyword_using_decorator", "keyword_using_decorator_with_wraps"] | CODE |
| LOW | atest/testdata/test_libraries/module_lib_with_all.py | 3 | __all__ = [ | CODE |
| LOW | atest/resources/atest_variables.py | 10 | __all__ = [ | CODE |
| LOW | src/robot/__init__.py | 53 | __all__ = ["rebot", "rebot_cli", "run", "run_cli"] | CODE |
| LOW | src/robot/running/docstringparser.py | 23 | __all__ = ["parse_docstring", "DocInfo"] | CODE |
| LOW | src/robot/libraries/Dialogs.py | 33 | __all__ = [ | CODE |
| LOW | src/robot/libraries/DateTime.py | 318 | __all__ = [ | CODE |
| LOW | src/robot/utils/markdown.py | 34 | __all__ = ["LinkifyExtension", "Markdown"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | atest/testdata/core/variables.py | 1 | # This file is only used by invalid_syntax.html and metadata.html. | COMMENT |
| MEDIUM | doc/userguide/ug2html.py | 134 | # Create the user guide using docutils | COMMENT |
| MEDIUM | doc/userguide/ug2html.py | 267 | # Create a zip distribution package | STRING |
| MEDIUM | doc/api/conf.py | 6 | # This file is execfile()d with the current directory set to its containing dir. | COMMENT |
| MEDIUM | src/robot/model/testsuite.py | 184 | # Create a suite, adjust source and convert to JSON. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/web/libdoc/testdata.ts | 3023 | doc: "<p>Gets elements size and location as an object <code>{x: float, y: float, width: float, height: float}</cod | CODE |
| LOW | src/web/libdoc/testdata.ts | 3659 | doc: "<p>Gets elements or pages client size (<code>clientHeight</code>, <code>clientWidth</code>) as object {width | CODE |
| LOW | src/web/libdoc/testdata.ts | 5735 | doc: "<p>Gets elements or pages current scroll position as object <code>{top: float, left: float, bottom: float, r | CODE |
| LOW | src/web/libdoc/testdata.ts | 5892 | doc: "<p>Gets elements or pages scrollable size as object <code>{width: float, height: float}</code>.</p>\n<table | CODE |
| LOW | src/web/libdoc/testdata.ts | 8978 | doc: "<p>Clicks, presses or releases a mouse button.</p>\n<table border=\"1\">\n<tr>\n<th>Arguments</th>\n<th>Desc | CODE |
| MEDIUM | src/web/libdoc/testdata.ts | 11737 | doc: "<p>Types the given key combination into element found by <code>selector</code>.</p>\n<table border=\"1\">\n< | CODE |
| MEDIUM | src/web/libdoc/testdata.ts | 15310 | doc: "<p>Waits for the element found by <code>selector</code> to satisfy state option.</p>\n<p>Note that Browser l | CODE |
| MEDIUM | src/robot/api/types.py | 16 | """Types that libraries and other extensions can utilize. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/standard_libraries/builtin/objects_for_call_method.py | 6 | def my_method(self, *args): | CODE |
| LOW⚡ | atest/testdata/keywords/resources/RecLibrary1.py | 36 | def do_stuff(self): | CODE |
| LOW | …ries/dynamic_libraries/DynamicLibraryWithoutArgspec.py | 9 | def do_something(self, x): | CODE |
| LOW | src/robot/api/deco.py | 172 | def do_something(self): | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | doc/userguide/ug2html.py | 36 | # ---------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/web/libdoc/testdata.ts | 11852 | doc: "<p>Returns a promise that resolves when file from <code>path</code> has been uploaded.</p>\n<p>Fails if the | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/web/libdoc/testdata.ts | 14851 | doc: "<p>Uploads file from <code>path</code> to file input element matched by selector.</p>\n<p>Fails if upload is | CODE |