A free, online learning platform to make quality education accessible for all.
This report presents the forensic synthetic code analysis of oppia/oppia, a Python project with 6,738 GitHub stars. SynthScan v2.0 examined 1,499,634 lines of code across 5441 source files, recording 18721 pattern matches distributed across 21 syntactic categories. The overall adjusted score of 13.0 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 18721 distinct pattern matches across 21 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 | conftest_test.py | 33 | def test_pytest_configure_adds_missing_paths_to_sys_path(self) -> None: | CODE |
| LOW | conftest_test.py | 59 | def test_pytest_configure_does_not_duplicate_paths(self) -> None: | CODE |
| LOW | conftest_test.py | 91 | def test_pytest_configure_adds_all_required_paths(self) -> None: | CODE |
| LOW | conftest_test.py | 111 | def test_environment_variables_are_set(self) -> None: | CODE |
| LOW | conftest_test.py | 128 | def test_curr_dir_added_to_sys_path(self) -> None: | CODE |
| LOW | setup_test.py | 33 | def test_setuptools_is_invoked_with_correct_parameters(self) -> None: | CODE |
| LOW | main_test.py | 44 | def test_cloud_logging_is_set_up_when_emulator_mode_is_disabled( | CODE |
| LOW | main_test.py | 72 | def test_ndb_wsgi_middleware_properly_wraps_given_function(self) -> None: | CODE |
| LOW | main_test.py | 122 | def test_get_redirect_route_creates_correct_route(self) -> None: | CODE |
| LOW | main_test.py | 139 | def test_android_test_data_route_added_in_dev_mode(self) -> None: | CODE |
| LOW | main_test.py | 154 | def test_firebase_connection_not_established_when_in_pytest(self) -> None: | CODE |
| LOW | core/schema_utils.py | 635 | def is_valid_algebraic_expression(obj: str) -> bool: | CODE |
| LOW | core/schema_utils.py | 648 | def is_valid_numeric_expression(obj: str) -> bool: | CODE |
| LOW | core/schema_utils.py | 700 | def is_supported_audio_language_code(obj: str) -> bool: | CODE |
| LOW | core/schema_utils.py | 712 | def is_valid_audio_language_code(obj: str) -> bool: | CODE |
| LOW | core/schema_utils.py | 769 | def has_expected_subtitled_content_length( | CODE |
| LOW | core/schema_utils.py | 786 | def has_subtitled_html_non_empty(obj: objects.SubtitledHtml) -> bool: | CODE |
| LOW | core/schema_utils.py | 800 | def has_unique_subtitled_contents(obj: List[objects.SubtitledHtml]) -> bool: | CODE |
| LOW⚡ | core/schema_utils_test.py | 733 | def test_normalize_against_schema_raises_exception(self) -> None: | CODE |
| LOW⚡ | core/schema_utils_test.py | 741 | def test_is_nonempty_validator(self) -> None: | CODE |
| LOW⚡ | core/schema_utils_test.py | 751 | def test_is_at_most_validator(self) -> None: | CODE |
| LOW⚡ | core/schema_utils_test.py | 761 | def test_has_length_at_least_validator(self) -> None: | CODE |
| LOW⚡ | core/schema_utils_test.py | 771 | def test_get_raises_invalid_validator_id(self) -> None: | CODE |
| LOW⚡ | core/schema_utils_test.py | 781 | def test_is_valid_algebraic_expression_validator(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 531 | def test_schemas_are_correctly_validated(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 793 | def test_normalize_against_schema_raises_invalid_input_exception( | CODE |
| LOW | core/schema_utils_test.py | 809 | def test_is_valid_numeric_expression_validator(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 820 | def test_is_valid_math_equation_validator(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 859 | def test_is_supported_audio_language_code(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 883 | def test_global_validators_raise_exception_when_error_in_dict(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 898 | def test_global_validators_raise_exception_when_error_in_list(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 913 | def test_global_validators_pass_when_no_error(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 942 | def test_is_search_query_string(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 955 | def test_is_valid_username_string(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 973 | def test_has_expected_subtitled_content_length(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 987 | def test_has_unique_subtitled_contents(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 1083 | def test_unicode_or_none_schema(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 1095 | def test_list_schema_with_len(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 1151 | def test_schema_key_post_normalizers(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 1172 | def test_normalize_against_schema_for_bytes_unicode_works_fine( | CODE |
| LOW | core/schema_utils_test.py | 1308 | def test_dict_with_variable_key_schema(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 1361 | def test_object_dict_schema_with_validation_method_key(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 1405 | def test_normalizer_get_raises_exception_for_invalid_id(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 1421 | def test_normalizer_sanitize_url(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 1469 | def test_weak_multiple_schema(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 1494 | def test_object_dict_schema_with_object_class_key(self) -> None: | CODE |
| LOW | core/schema_utils_test.py | 1509 | def validation_method_for_testing(obj: Dict[str, str]) -> Dict[str, str]: | CODE |
| LOW⚡ | core/utils_test.py | 208 | def test_generate_random_string(self) -> None: | CODE |
| LOW⚡ | core/utils_test.py | 214 | def test_convert_data_url_to_binary_with_incorrect_prefix(self) -> None: | CODE |
| LOW⚡ | core/utils_test.py | 220 | def test_get_thumbnail_icon_url_for_category(self) -> None: | CODE |
| LOW⚡ | core/utils_test.py | 260 | def test_datetime_conversion_to_string_returns_correct_format(self) -> None: | CODE |
| LOW⚡ | core/utils_test.py | 267 | def test_string_to_datetime_conversion_returns_correct_datetime( | CODE |
| LOW⚡ | core/utils_test.py | 277 | def test_create_string_from_largest_unit_in_timedelta_raises_for_zero_diff( | CODE |
| LOW⚡ | core/utils_test.py | 617 | def test_get_exploration_components_from_dir_with_no_yaml_file( | CODE |
| LOW⚡ | core/utils_test.py | 627 | def test_get_asset_dir_prefix_with_prod_mode(self) -> None: | CODE |
| LOW⚡ | core/utils_test.py | 635 | def test_get_supported_audio_language_description_with_invalid_code( | CODE |
| LOW⚡ | core/utils_test.py | 687 | def test_snake_case_to_camel_case(self) -> None: | CODE |
| LOW⚡ | core/utils_test.py | 695 | def _assert_valid_thumbnail_filename( | CODE |
| LOW⚡ | core/utils_test.py | 704 | def test_require_valid_thumbnail_filename(self) -> None: | CODE |
| LOW⚡ | core/utils_test.py | 770 | def test_get_time_in_millisecs(self) -> None: | CODE |
| 11284 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .lighthouserc-performance.js | 1 | // Copyright 2020 The Oppia Authors. All Rights Reserved. | COMMENT |
| LOW | conftest.py | 1 | # Copyright 2025 The Oppia Authors. All Rights Reserved. | COMMENT |
| LOW | .lighthouserc-accessibility.js | 1 | // Copyright 2020 The Oppia Authors. All Rights Reserved. | COMMENT |
| LOW | pytest.ini | 41 | # Uncomment the options below to enable parallel test execution across CPU cores. | COMMENT |
| LOW | requirements.txt | 1 | # Developers: Please do not modify this auto-generated file. If | COMMENT |
| LOW | requirements.txt | 381 | --hash=sha256:2ceb087315e6af43f256704b871d99326b1f12a9d6ce99beaedec99ba26a0ace \ | COMMENT |
| LOW | requirements.txt | 401 | # google-cloud-pubsublite | COMMENT |
| LOW | requirements.txt | 421 | --hash=sha256:500c3a29adedeb36ea9cf24b8d10858e152f2412e3ca37829b3fa18e33d63b77 | COMMENT |
| LOW | requirements.txt | 481 | # apache-beam | COMMENT |
| LOW | requirements.txt | 641 | # google-cloud-storage | COMMENT |
| LOW | requirements.txt | 1121 | # apache-beam | COMMENT |
| LOW | requirements.txt | 1161 | --hash=sha256:de78575669dddf6099a8a0f46a27e82a1783c557ccc38ee620ed8cc96d3be7d7 \ | COMMENT |
| LOW | requirements.txt | 1181 | # google-cloud-recommendations-ai | COMMENT |
| LOW | requirements.txt | 1601 | --hash=sha256:f6442f0f0ff81775eaa5b05af8a0ffa1dda36e9cf6ec1e0d3d245e8564b684ce \ | COMMENT |
| LOW | mypy_imports.py | 1 | # coding: utf-8 | COMMENT |
| LOW | mypy_imports_test.py | 1 | # coding: utf-8 | COMMENT |
| LOW | setup.py | 1 | # Copyright 2021 The Oppia Authors. All Rights Reserved. | COMMENT |
| LOW | conftest_test.py | 1 | # coding: utf-8 | COMMENT |
| LOW | puppeteer-login-script.js | 1 | // Copyright 2014 The Oppia Authors. All Rights Reserved. | COMMENT |
| LOW | setup_test.py | 1 | # Copyright 2022 The Oppia Authors. All Rights Reserved. | COMMENT |
| LOW | main_test.py | 1 | # Copyright 2014 The Oppia Authors. All Rights Reserved. | COMMENT |
| LOW | main.py | 1 | # Copyright 2014 The Oppia Authors. All Rights Reserved. | COMMENT |
| LOW | angular-template-style-url-replacer.webpack-loader.js | 1 | // Copyright 2021 The Oppia Authors. All Rights Reserved. | COMMENT |
| LOW | .lighthouserc-base.js | 1 | // Copyright 2020 The Oppia Authors. All Rights Reserved. | COMMENT |
| LOW | requirements_dev.txt | 501 | tomli==2.0.1 \ | COMMENT |
| LOW | core/schema_utils.py | 1 | # Copyright 2014 The Oppia Authors. All Rights Reserved. | COMMENT |
| LOW | core/handler_schema_constants_test.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/handler_schema_constants.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/schema_utils_test.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/feature_flag_list.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/utils_test.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/android_validation_constants_test.py | 1 | # Copyright 2020 The Oppia Authors. All Rights Reserved. | COMMENT |
| LOW | core/constants.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/constants.py | 141 | # Here we use type Any because the return value here refers to the `value` | COMMENT |
| LOW | core/constants_test.py | 1 | # Copyright 2017 The Oppia Authors. All Rights Reserved. | COMMENT |
| LOW | core/feconf.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/feconf.py | 321 | # The minimum version of the app feedback report daily stats blob schema. | COMMENT |
| LOW | core/feconf.py | 621 | # Whether to send an email to all the creator's subscribers when he/she | COMMENT |
| LOW | core/feconf.py | 821 | # is_linear property to true. Linear interactions do not support branching and | COMMENT |
| LOW | core/feconf.py | 1421 | # CLASSROOM_PAGES_DATA property in config_domain. | COMMENT |
| LOW | core/feconf_test.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/utils.py | 1 | # Copyright 2014 The Oppia Authors. All Rights Reserved. | COMMENT |
| LOW | core/feature_flag_list_test.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/android_validation_constants.py | 1 | # Copyright 2020 The Oppia Authors. All Rights Reserved. | COMMENT |
| LOW | core/platform/models_test.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/platform/models.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/platform/taskqueue/cloud_tasks_emulator.py | 1 | # coding: utf-8 | COMMENT |
| LOW | …re/platform/taskqueue/cloud_taskqueue_services_test.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/platform/taskqueue/cloud_tasks_emulator_test.py | 1 | # coding: utf-8 | COMMENT |
| LOW | …platform/taskqueue/dev_mode_taskqueue_services_test.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/platform/taskqueue/dev_mode_taskqueue_services.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/platform/taskqueue/cloud_taskqueue_services.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/platform/app_identity/gae_app_identity_services.py | 1 | # coding: utf-8 | COMMENT |
| LOW | …latform/app_identity/gae_app_identity_services_test.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/platform/cache/redis_cache_services_test.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/platform/cache/redis_cache_services.py | 1 | # coding: utf-8 | COMMENT |
| LOW | …platform/translate/dev_mode_translate_services_test.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/platform/translate/translate_emulator_test.py | 1 | # coding: utf-8 | COMMENT |
| LOW | …re/platform/translate/cloud_translate_emulator_test.py | 1 | # coding: utf-8 | COMMENT |
| LOW | core/platform/translate/base_translate_services.py | 1 | # coding: utf-8 | COMMENT |
| 4210 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | core/schema_utils.py | 100 | Validate the given object using the schema, normalizing if necessary. Args: obj: *. The object to validate | STRING |
| HIGH | core/schema_utils.py | 374 | Returns the normalizer method corresponding to the specified normalizer_id. Args: normalize | STRING |
| HIGH | core/schema_utils.py | 396 | Takes a string representing a URL and sanitizes it. Args: obj: str. A string representing a URL. | STRING |
| HIGH | core/schema_utils.py | 454 | Returns the validator method corresponding to the specified validator_id. Args: validator_i | STRING |
| HIGH | core/schema_utils.py | 822 | Checks if given audio file is a valid audio file. Args: obj: str. The raw audio file to validate. | STRING |
| HIGH | core/schema_utils_test.py | 1510 | Method to test 'validation_method' key of schema. Args: obj: dict. Dictionary form of the argument. Re | STRING |
| HIGH | core/constants.py | 88 | Open file and return its contents. This needs to be used for files that are loaded by the Python code directly, like | STRING |
| HIGH | core/utils.py | 85 | Create or return the singleton instance of the class. Args: *args: list(*). Positional arguments fo | STRING |
| HIGH | core/utils.py | 187 | Gets the (yaml, assets) from the contents of an exploration data dir. Args: dir_path: str. A full path to t | STRING |
| HIGH | core/utils.py | 286 | Gets the dict representation of a YAML string. Args: yaml_str: str. Yaml string for conversion into dict. | STRING |
| HIGH | core/utils.py | 385 | Converts a PNG or WEBP base64 data URL to a PNG binary data. Args: image_data_url: str. A string that is to | STRING |
| HIGH | core/utils.py | 411 | Converts a PNG or WEBP image string (represented by 'content') to a data URL. Args: content: str. PNG o | STRING |
| HIGH | core/utils.py | 493 | Set or replace a query parameter, and return the modified URL. Args: url: str. URL string which contains th | STRING |
| HIGH | core/utils.py | 542 | Convert a string to a SHA1 hash. Args: input_string: str. Input string for conversion to hash. max_ | STRING |
| HIGH | core/utils.py | 694 | Given the timedelta object, find the largest nonzero time unit and return that value, along with the time unit, as a | STRING |
| HIGH | core/utils.py | 1103 | Returns the language description for the given language code. Args: language_code: str. The language code f | STRING |
| HIGH | core/platform/models.py | 90 | Imports and returns the storage modules listed in model_names. Args: model_names: list(Names). List | STRING |
| HIGH | core/platform/translate/cloud_translate_emulator.py | 72 | Returns the saved expected response for a given input. If no response exists for the given input, returns a defa | STRING |
| HIGH | core/platform/translate/dev_mode_translate_services.py | 36 | Translates text into the target language. For more information on ISO 639-1 see: https://www.w3schools.com/ | STRING |
| HIGH | core/platform/translate/cloud_translate_services.py | 45 | Translates text into the target language. This method uses ISO 639-1 compliant language codes to specify languages. | STRING |
| HIGH | core/platform/auth/firebase_auth_services_test.py | 189 | Adds user to storage if new, otherwise raises an error. Args: uid: str. The unique Firebase account | STRING |
| HIGH | core/platform/auth/firebase_auth_services_test.py | 226 | Deletes the users identified by the specified user ids. Deleting a non-existing user does not generate an error | STRING |
| HIGH | core/platform/auth/firebase_auth_services_test.py | 278 | Returns user with given ID if found, otherwise raises an error. Args: uid: str. The Firebase accoun | STRING |
| HIGH | core/platform/auth/firebase_auth_services_test.py | 297 | Returns user with given ID if found, otherwise raises an error. Args: identifiers: list(firebase_au | STRING |
| HIGH | core/platform/auth/firebase_auth_services_test.py | 322 | Returns user with given email if found, otherwise raises an error. Args: email: str. The email addr | STRING |
| HIGH | core/platform/auth/firebase_auth_services_test.py | 364 | Retrieves a page of user accounts from a Firebase project. The `page_token` argument governs the starting point | STRING |
| HIGH | core/platform/auth/firebase_auth_services_test.py | 429 | Updates the custom claims of the given user. Args: uid: str. The Firebase account ID of the user. | STRING |
| HIGH | core/platform/auth/firebase_auth_services_test.py | 451 | Updates the user in storage if found, otherwise raises an error. Args: uid: str. The Firebase accou | STRING |
| HIGH | core/platform/auth/firebase_auth_services.py | 163 | Authenticates the request and returns claims about its authorizer. Args: request: webapp2.Request. The HTTP | STRING |
| HIGH | core/platform/auth/firebase_auth_services.py | 592 | Returns claims from the session cookie, or None if invalid. Args: cookie: str|None. The session cookie to e | STRING |
| HIGH | …e/platform/bulk_email/mailchimp_bulk_email_services.py | 40 | Returns Mailchimp subscriber hash from email. Args: email: str. The email of the user. Returns: | STRING |
| HIGH | …e/platform/bulk_email/mailchimp_bulk_email_services.py | 102 | Creates a new user in the mailchimp database and handles the case where the user was permanently deleted from the da | STRING |
| HIGH | …e/platform/bulk_email/mailchimp_bulk_email_services.py | 192 | Subscribes/unsubscribes an existing user or creates a new user with correct status in the mailchimp DB. NOTE: C | STRING |
| HIGH | …tform/bulk_email/mailchimp_bulk_email_services_test.py | 103 | Mocks the get function of the mailchimp api. Args: _list_id: str. List Id o | STRING |
| HIGH | core/platform/datastore/cloud_datastore_services.py | 118 | Fetches models corresponding to a sequence of keys. Args: keys: list(str). The keys to look up. Return | STRING |
| HIGH | core/platform/datastore/cloud_datastore_services.py | 288 | Fetches the entities from the datastore corresponding to the given ids and models. Args: ids_and_models | STRING |
| HIGH | …re/platform/transactions/cloud_transaction_services.py | 60 | Runs a decorated function in a transaction. Either all of the operations in the transaction are applied, or none of | STRING |
| HIGH | …rm/speech_synthesis/azure_speech_synthesis_services.py | 351 | Regenerates speech (Oppia's voiceovers) from the provided text. This method uses Azure Text-to-Speech to synthesize | STRING |
| HIGH | core/platform/email/mailgun_email_services.py | 57 | Send POST HTTP request to mailgun api. This method is adopted from the requests library's post method. Args: | STRING |
| HIGH | core/tests/test_utils.py | 236 | Returns filepath using the filename. Different files are present in different subdirectories in the rootdir. So, we | STRING |
| HIGH | core/tests/test_utils.py | 274 | Mock for load_template function. This mock is required for backend tests since we do not have webpack compilation be | STRING |
| HIGH | core/tests/test_utils.py | 480 | Mocks get_platform_parameter_value function to return the value of the platform parameter if the parameter is pr | STRING |
| HIGH | core/tests/test_utils.py | 624 | Creates an index with the given name. Args: index: str. The name of the index to create. R | STRING |
| HIGH | core/tests/test_utils.py | 663 | Adds a document with the given ID to the index. Note that, unfortunately, we have to keep the name of "id" for | STRING |
| HIGH | core/tests/test_utils.py | 704 | Checks whether a document with the given ID exists in the mock database. Args: index: str. | STRING |
| HIGH | core/tests/test_utils.py | 724 | Deletes a document from an index in the mock database. Does nothing if the document is not in the index. | STRING |
| HIGH | core/tests/test_utils.py | 773 | Deletes documents from an index based on the given query. Note that this mock only supports a specific for the | STRING |
| HIGH | core/tests/test_utils.py | 821 | Searches and returns documents that match the given query. Args: body: dict|None. A dictionary sear | STRING |
| HIGH | core/tests/test_utils.py | 1537 | Updates a param dict using the given list of param_changes. Note that the list of parameter changes is ordered. | STRING |
| HIGH | core/tests/test_utils.py | 1726 | Swap obj.attr with a CallCounter instance. Args: obj: *. The Python object whose attribute you want | STRING |
| HIGH | core/tests/test_utils.py | 1766 | Swap an object's function value within the context of a 'with' statement. The object can be anything that suppor | STRING |
| HIGH | core/tests/test_utils.py | 1978 | Asserts that the message in a raised exception matches a regex. This is a wrapper around assertRaisesRegex in un | STRING |
| HIGH | core/tests/test_utils.py | 2244 | Mocks parts of the datastore to accept a fake datetime type that always returns the same value for utcnow. | STRING |
| HIGH | core/tests/test_utils.py | 2984 | Gets the user ID corresponding to the given email. Args: email: str. A valid email stored in the Ap | STRING |
| HIGH | core/tests/test_utils.py | 3169 | Get a response, transformed to a Python object and checks for a list of status codes. Args: | STRING |
| HIGH | core/tests/test_utils.py | 3777 | Saves a new strictly-validated exploration with a sequence of states. Args: exploration_id: str. Th | STRING |
| HIGH | core/tests/test_utils.py | 4094 | Creates an Oppia Story and saves it. NOTE: Callers are responsible for ensuring that the 'corresponding | STRING |
| HIGH | core/tests/gae_suite.py | 68 | Creates test suites. If test_target is None, runs all tests. Args: test_target: str. The name of the test s | STRING |
| HIGH | core/storage/statistics/gae_models.py | 1598 | Generates a unique id for the playthrough of the form '[exp_id].[random hash of 16 chars]'. Args: | STRING |
| HIGH | core/storage/base_model/gae_models.py | 339 | Gets an entity by id. Args: entity_id: str. The entity id. strict: bool. Whether to fai | STRING |
| 358 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | core/platform/auth/firebase_auth_services.py | 0 | deletes all associations that refer to the user outside of oppia. args: user_id: str. the unique id of the user whose as | STRING |
| HIGH | core/tests/test_utils.py | 0 | deletes all associations that refer to the user outside of oppia. args: user_id: str. the unique id of the user whose as | STRING |
| HIGH | core/domain/auth_services.py | 0 | deletes all associations that refer to the user outside of oppia. args: user_id: str. the unique id of the user whose as | STRING |
| HIGH | core/platform/auth/firebase_auth_services.py | 0 | returns true if and only if we have successfully verified that all external associations have been deleted. args: user_i | STRING |
| HIGH | core/tests/test_utils.py | 0 | returns true if and only if we have successfully verified that all external associations have been deleted. args: user_i | STRING |
| HIGH | core/domain/auth_services.py | 0 | returns true if and only if we have successfully verified that all external associations have been deleted. args: user_i | STRING |
| HIGH | core/platform/auth/firebase_auth_services.py | 0 | returns the user id associated with the given auth id. args: auth_id: str. the auth id. include_deleted: bool. whether t | STRING |
| HIGH | core/tests/test_utils.py | 0 | returns the user id associated with the given auth id. args: auth_id: str. the auth id. include_deleted: bool. whether t | STRING |
| HIGH | core/domain/auth_services.py | 0 | returns the user id associated with the given auth id. args: auth_id: str. the auth id. include_deleted: bool. whether t | STRING |
| HIGH | core/platform/auth/firebase_auth_services.py | 0 | returns the user ids associated with the given auth ids. args: auth_ids: list(str). the auth ids. returns: list(str|none | STRING |
| HIGH | core/tests/test_utils.py | 0 | returns the user ids associated with the given auth ids. args: auth_ids: list(str). the auth ids. returns: list(str|none | STRING |
| HIGH | core/domain/auth_services.py | 0 | returns the user ids associated with the given auth ids. args: auth_ids: list(str). the auth ids. returns: list(str|none | STRING |
| HIGH | core/storage/statistics/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/opportunity/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/beam_job/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/base_model/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/certificate_assessment/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/cloud_task/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/collection/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/skill/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/suggestion/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/translation/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/config/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/auth/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/activity/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/app_feedback_report/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/classroom/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/user/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/topic/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/exploration/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/feedback/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/recommendations/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/question/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/job/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/blog_statistics/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/subtopic/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/voiceover/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/story/gae_models.py | 0 | model doesn't contain any data directly corresponding to a user. | STRING |
| HIGH | core/storage/base_model/gae_models.py | 0 | check whether blogpostrightsmodel references to the given user. args: user_id: str. the id of the user whose data should | STRING |
| HIGH | core/storage/collection/gae_models.py | 0 | check whether blogpostrightsmodel references to the given user. args: user_id: str. the id of the user whose data should | STRING |
| HIGH | core/storage/suggestion/gae_models.py | 0 | check whether blogpostrightsmodel references to the given user. args: user_id: str. the id of the user whose data should | STRING |
| HIGH | core/storage/improvements/gae_models.py | 0 | check whether blogpostrightsmodel references to the given user. args: user_id: str. the id of the user whose data should | STRING |
| HIGH | core/storage/user/gae_models.py | 0 | check whether blogpostrightsmodel references to the given user. args: user_id: str. the id of the user whose data should | STRING |
| HIGH | core/storage/topic/gae_models.py | 0 | check whether blogpostrightsmodel references to the given user. args: user_id: str. the id of the user whose data should | STRING |
| HIGH | core/storage/exploration/gae_models.py | 0 | check whether blogpostrightsmodel references to the given user. args: user_id: str. the id of the user whose data should | STRING |
| HIGH | core/storage/blog/gae_models.py | 0 | check whether blogpostrightsmodel references to the given user. args: user_id: str. the id of the user whose data should | STRING |
| HIGH | core/storage/collection/gae_models.py | 0 | the history of commits is not relevant for the purposes of takeout since commits don't contain relevant data correspondi | STRING |
| HIGH | core/storage/skill/gae_models.py | 0 | the history of commits is not relevant for the purposes of takeout since commits don't contain relevant data correspondi | STRING |
| HIGH | core/storage/topic/gae_models.py | 0 | the history of commits is not relevant for the purposes of takeout since commits don't contain relevant data correspondi | STRING |
| HIGH | core/storage/exploration/gae_models.py | 0 | the history of commits is not relevant for the purposes of takeout since commits don't contain relevant data correspondi | STRING |
| HIGH | core/storage/question/gae_models.py | 0 | the history of commits is not relevant for the purposes of takeout since commits don't contain relevant data correspondi | STRING |
| HIGH | core/storage/subtopic/gae_models.py | 0 | the history of commits is not relevant for the purposes of takeout since commits don't contain relevant data correspondi | STRING |
| HIGH | core/storage/story/gae_models.py | 0 | the history of commits is not relevant for the purposes of takeout since commits don't contain relevant data correspondi | STRING |
| HIGH | core/storage/collection/gae_models.py | 0 | model contains data corresponding to a user, but this isn't exported because the history of commits isn't deemed as usef | STRING |
| HIGH | core/storage/skill/gae_models.py | 0 | model contains data corresponding to a user, but this isn't exported because the history of commits isn't deemed as usef | STRING |
| HIGH | core/storage/topic/gae_models.py | 0 | model contains data corresponding to a user, but this isn't exported because the history of commits isn't deemed as usef | STRING |
| HIGH | core/storage/exploration/gae_models.py | 0 | model contains data corresponding to a user, but this isn't exported because the history of commits isn't deemed as usef | STRING |
| HIGH | core/storage/question/gae_models.py | 0 | model contains data corresponding to a user, but this isn't exported because the history of commits isn't deemed as usef | STRING |
| HIGH | core/storage/subtopic/gae_models.py | 0 | model contains data corresponding to a user, but this isn't exported because the history of commits isn't deemed as usef | STRING |
| HIGH | core/storage/story/gae_models.py | 0 | model contains data corresponding to a user, but this isn't exported because the history of commits isn't deemed as usef | STRING |
| 208 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | conftest.py | 17 | CODE | |
| LOW | mypy_imports.py | 24 | CODE | |
| LOW | mypy_imports.py | 26 | CODE | |
| LOW | mypy_imports.py | 29 | CODE | |
| LOW | mypy_imports.py | 30 | CODE | |
| LOW | mypy_imports.py | 33 | CODE | |
| LOW | mypy_imports.py | 34 | CODE | |
| LOW | mypy_imports.py | 37 | CODE | |
| LOW | mypy_imports.py | 38 | CODE | |
| LOW | mypy_imports.py | 39 | CODE | |
| LOW | mypy_imports.py | 40 | CODE | |
| LOW | mypy_imports.py | 43 | CODE | |
| LOW | mypy_imports.py | 44 | CODE | |
| LOW | mypy_imports.py | 47 | CODE | |
| LOW | mypy_imports.py | 50 | CODE | |
| LOW | mypy_imports.py | 53 | CODE | |
| LOW | mypy_imports.py | 54 | CODE | |
| LOW | mypy_imports.py | 57 | CODE | |
| LOW | mypy_imports.py | 58 | CODE | |
| LOW | mypy_imports.py | 59 | CODE | |
| LOW | mypy_imports.py | 60 | CODE | |
| LOW | mypy_imports.py | 61 | CODE | |
| LOW | mypy_imports.py | 62 | CODE | |
| LOW | mypy_imports.py | 63 | CODE | |
| LOW | mypy_imports.py | 66 | CODE | |
| LOW | mypy_imports.py | 67 | CODE | |
| LOW | mypy_imports.py | 68 | CODE | |
| LOW | mypy_imports.py | 69 | CODE | |
| LOW | mypy_imports.py | 70 | CODE | |
| LOW | mypy_imports.py | 71 | CODE | |
| LOW | mypy_imports.py | 72 | CODE | |
| LOW | mypy_imports.py | 73 | CODE | |
| LOW | mypy_imports.py | 74 | CODE | |
| LOW | mypy_imports.py | 75 | CODE | |
| LOW | mypy_imports.py | 76 | CODE | |
| LOW | mypy_imports.py | 77 | CODE | |
| LOW | mypy_imports.py | 78 | CODE | |
| LOW | mypy_imports.py | 79 | CODE | |
| LOW | mypy_imports.py | 80 | CODE | |
| LOW | mypy_imports.py | 81 | CODE | |
| LOW | mypy_imports.py | 82 | CODE | |
| LOW | mypy_imports.py | 83 | CODE | |
| LOW | mypy_imports.py | 84 | CODE | |
| LOW | mypy_imports.py | 85 | CODE | |
| LOW | mypy_imports.py | 86 | CODE | |
| LOW | mypy_imports.py | 87 | CODE | |
| LOW | mypy_imports.py | 88 | CODE | |
| LOW | mypy_imports_test.py | 19 | CODE | |
| LOW | mypy_imports_test.py | 21 | CODE | |
| LOW | setup.py | 21 | CODE | |
| LOW | conftest_test.py | 19 | CODE | |
| LOW | setup_test.py | 17 | CODE | |
| LOW | main_test.py | 17 | CODE | |
| LOW | main.py | 17 | CODE | |
| LOW | core/schema_utils.py | 27 | CODE | |
| LOW | core/handler_schema_constants_test.py | 19 | CODE | |
| LOW | core/handler_schema_constants_test.py | 21 | CODE | |
| LOW | core/handler_schema_constants.py | 29 | CODE | |
| LOW | core/schema_utils_test.py | 19 | CODE | |
| LOW | core/feature_flag_list.py | 19 | CODE | |
| 999 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/schema_utils_test.py | 139 | 'placeholder': { | CODE |
| LOW | core/schema_utils_test.py | 159 | 'placeholder': { | CODE |
| LOW | core/platform/auth/firebase_auth_services_test.py | 992 | EMAIL = 'foo@bar.com' | CODE |
| LOW | core/tests/test_utils.py | 2313 | CURRICULUM_ADMIN_EMAIL: Final = 'admin@example.com' | CODE |
| LOW | core/tests/test_utils.py | 2422 | 'placeholder': {'value': 'Enter text here'}, | CODE |
| LOW | core/tests/test_utils.py | 4563 | 'placeholder': { | CODE |
| LOW | core/tests/test_utils.py | 4567 | extra_prefix='placeholder', | CODE |
| LOW | core/tests/ci-test-suite-configs/acceptance.json | 299 | "name": "super-admin/load-dummy-data-in-dev-mode", | CODE |
| LOW | core/tests/ci-test-suite-configs/acceptance.json | 300 | "module": "core/tests/puppeteer-acceptance-tests/specs/super-admin/load-dummy-data-in-dev-mode.spec.ts", | CODE |
| LOW | core/tests/build_sources/extensions/CodeRepl.py | 51 | 'name': 'placeholder', | CODE |
| LOW | …tests/build_sources/extensions/DragAndDropSortInput.py | 60 | 'placeholder': 'Enter an option for the learner to drag' | CODE |
| LOW | …eer-acceptance-tests/utilities/user/logged-out-user.ts | 6337 | return el && el.getAttribute('placeholder') === expected; | CODE |
| LOW | core/tests/load_tests/feedback_thread_summaries_test.py | 52 | USER_EMAIL: Final = 'user@example.com' | CODE |
| LOW | core/tests/webdriverio_desktop/userJourneys.js | 262 | 'placeholder', | CODE |
| LOW⚡ | core/tests/data/test_cases_for_rte.json | 43 | "html_content": "<table border=\"1\"><tbody><tr><td><b>Lorem</b></td><td><b>ipsum</b></td></tr><tr><td>lorem</td><td | CODE |
| LOW⚡ | core/tests/data/test_cases_for_rte.json | 44 | "expected_output": "<p><b>Lorem</b> <b>ipsum</b></p><p>lorem ipsum</p><p><br></p><p>lorem ipsum</p>", | CODE |
| LOW⚡ | core/tests/data/test_cases_for_rte.json | 51 | "html_content": "<blockquote><i>lorem ipsum</i><b><i>oi</i></b>lorem ipsum<br><i><b>lorem ipsum</b>lorem ipsum</i><s | CODE |
| LOW⚡ | core/tests/data/test_cases_for_rte.json | 52 | "expected_output": "<blockquote><p><i>lorem ipsum</i><b><i>oi</i></b>lorem ipsum<br><i><b>lorem ipsum</b>lorem ipsum | CODE |
| LOW | core/tests/data/test_cases_for_rte.json | 111 | "html_content": "<i><div><i><span>Hello </span>this is test </i><span>case </span><i>for migration testing</i></div> | CODE |
| LOW | core/tests/data/test_cases_for_rte.json | 112 | "expected_output": "<p><i>Hello this is test </i>case <i>for migration testing</i></p><p><oppia-noninteractive-image | CODE |
| LOW | core/tests/data/test_cases_for_rte.json | 131 | "html_content": "<span><ol><li><p><span>lorem ipsum</span></p></li></ol></span>", | CODE |
| LOW | core/tests/data/test_cases_for_rte.json | 132 | "expected_output": "<ol><li><p>lorem ipsum</p></li></ol>", | CODE |
| LOW | core/tests/data/test_cases_for_rte.json | 143 | "html_content": "<table border=\"0\"><tbody><tr><td><p><br>lorem ipsum</p></td><td><p><br>testing done<br></p></td>< | CODE |
| LOW | core/tests/data/test_cases_for_rte.json | 144 | "expected_output": "<p><br>lorem ipsum <br>testing done<br></p>", | CODE |
| LOW⚡ | core/tests/data/test_cases_for_rte.json | 155 | "html_content": "<span><div><span>Hello </span><span></span></div><oppia-noninteractive-collapsible content-with-val | CODE |
| LOW⚡ | core/tests/data/test_cases_for_rte.json | 156 | "expected_output": "<p>Hello </p><p><oppia-noninteractive-collapsible content-with-value=\"&quot;&lt;p&g | CODE |
| LOW⚡ | core/tests/data/test_cases_for_rte.json | 159 | "html_content": "Hello <div><br></div><div>this is </div><div><br></div><div>test </div><div><br></div><div>case for | CODE |
| LOW⚡ | core/tests/data/test_cases_for_rte.json | 160 | "expected_output": "<p>Hello </p><p><br></p><p>this is </p><p><br></p><p>test </p><p><br></p><p>case for migration t | CODE |
| LOW | core/tests/data/test_cases_for_rte.json | 211 | "html_content": "<span><b>Hello </b></span><div><b><span>this is test case</span></b></div><div><b><br></b></div><di | CODE |
| LOW | core/tests/data/test_cases_for_rte.json | 212 | "expected_output": "<p><b>Hello </b></p><p><b>this is test case</b></p><p><b><br></b></p><p><oppia-noninteractive-ta | CODE |
| LOW | core/tests/data/test_cases_for_rte.json | 235 | "html_content": "<table border=\"1\"><tbody><tr><td>Lorem ipsum</td><td>Lorem ipsum</td><td>Lorem ipsum</td></tr><tr | CODE |
| LOW | core/tests/data/test_cases_for_rte.json | 236 | "expected_output": "<p>Lorem ipsum Lorem ipsum Lorem ipsum</p><p>Lorem ipsum Lorem ipsum Lorem ipsum</p><p>Lorem ips | CODE |
| LOW | core/storage/collection/gae_models_test.py | 363 | 'fake_user' | CODE |
| LOW | core/storage/auth/gae_models_test.py | 127 | email='user@example.com', | CODE |
| LOW⚡ | core/storage/user/gae_models_test.py | 289 | 'Entity for class UserSettingsModel with id fake_user not found', | CODE |
| LOW⚡ | core/storage/user/gae_models_test.py | 291 | user_models.UserSettingsModel.export_data('fake_user') | CODE |
| LOW⚡ | core/storage/user/gae_models_test.py | 297 | 'email': 'user@example.com', | CODE |
| LOW⚡ | core/storage/user/gae_models_test.py | 1976 | 'fake_user' | CODE |
| LOW | core/storage/user/gae_models_test.py | 45 | USER_1_EMAIL: Final = 'user@example.com' | CODE |
| LOW | core/storage/user/gae_models_test.py | 54 | PROFILE_1_EMAIL: Final = 'user@example.com' | CODE |
| LOW | core/storage/user/gae_models_test.py | 2733 | user_data = user_models.UserSkillMasteryModel.export_data('fake_user') | CODE |
| LOW⚡ | core/storage/exploration/gae_models_test.py | 377 | 'fake_user' | CODE |
| LOW | core/storage/feedback/gae_models_test.py | 135 | 'fake_user' | CODE |
| LOW | …ed-choices-field/filtered-choices-field.component.html | 2 | <mat-select [placeholder]="placeholder" | CODE |
| LOW | …i-selection-field/multi-selection-field.component.html | 13 | <input [placeholder]="placeholder" | CODE |
| LOW | …on-directives/create-activity-button.component.spec.ts | 90 | _email: 'tester@example.org', | CODE |
| LOW | …on-directives/create-activity-button.component.spec.ts | 105 | getEmail: () => 'tester@example.org', | CODE |
| LOW | …on-directives/create-activity-button.component.spec.ts | 119 | _email: 'tester@example.org', | CODE |
| LOW | …on-directives/create-activity-button.component.spec.ts | 134 | getEmail: () => 'tester@example.org', | CODE |
| LOW | …ives/question-player/question-player.component.spec.ts | 84 | 'tester@example.org', | CODE |
| LOW⚡ | …/certificate-offering-dashboard-page.component.spec.ts | 302 | component.openDeleteCertificateOfferingModal('dummy_id'); | CODE |
| LOW⚡ | …/certificate-offering-dashboard-page.component.spec.ts | 311 | expect(deleteSpy).toHaveBeenCalledWith('dummy_id'); | CODE |
| LOW⚡ | …/certificate-offering-dashboard-page.component.spec.ts | 320 | component.openDeleteCertificateOfferingModal('dummy_id'); | CODE |
| LOW⚡ | …/certificate-offering-dashboard-page.component.spec.ts | 327 | component.certificateOfferings = [makeOffering('dummy_id')]; | CODE |
| LOW⚡ | …/certificate-offering-dashboard-page.component.spec.ts | 334 | component.deleteCertificateOffering('dummy_id'); | CODE |
| LOW⚡ | …/certificate-offering-dashboard-page.component.spec.ts | 337 | expect(deleteSpy).toHaveBeenCalledWith('dummy_id'); | CODE |
| LOW⚡ | …/certificate-offering-dashboard-page.component.spec.ts | 361 | const initialOfferings = [makeOffering('dummy_id', 'Certificate Title')]; | CODE |
| LOW⚡ | …/certificate-offering-dashboard-page.component.spec.ts | 369 | void component.deleteCertificateOffering('dummy_id'); | CODE |
| LOW⚡ | …/certificate-offering-dashboard-page.component.spec.ts | 372 | expect(deleteSpy).toHaveBeenCalledWith('dummy_id'); | CODE |
| LOW | …contribution-opportunities-backend-api.service.spec.ts | 164 | email: 'user@example.com', | CODE |
| 438 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | conftest_test.py | 35 | # Create a mock config object. | COMMENT |
| MEDIUM | conftest_test.py | 61 | # Create a mock config object. | COMMENT |
| MEDIUM | conftest_test.py | 93 | # Create a mock config object. | COMMENT |
| MEDIUM | core/utils_test.py | 1115 | # Create a test class using SingletonMeta. | COMMENT |
| MEDIUM | core/platform/storage/cloud_storage_emulator.py | 260 | # Create a pipeline that is then executed at one. | COMMENT |
| MEDIUM | core/storage/suggestion/gae_models_test.py | 2436 | # Create a translation suggestion that has a different language code. | COMMENT |
| MEDIUM | core/storage/auth/gae_models_test.py | 121 | # Create the model instance to be fetched using | COMMENT |
| MEDIUM | core/jobs/batch_jobs/voiceover_synthesis_jobs_test.py | 312 | # Create a non-curated exploration. | COMMENT |
| MEDIUM | …obs/batch_jobs/exploration_voiceover_sync_jobs_test.py | 454 | # Creating the first curated exploration. | COMMENT |
| MEDIUM | …obs/batch_jobs/exploration_voiceover_sync_jobs_test.py | 608 | # Creating the second curated exploration. | COMMENT |
| MEDIUM | core/jobs/batch_jobs/exp_migration_jobs_test.py | 1218 | # Create a new, default exploration whose snapshots should not be | COMMENT |
| MEDIUM | core/jobs/batch_jobs/exp_migration_jobs_test.py | 1685 | # Create a new, default exploration that should not be affected by the | COMMENT |
| MEDIUM | …s/synthesize_voiceover_by_language_accent_jobs_test.py | 312 | # Create a non-curated exploration. | COMMENT |
| MEDIUM | …s/batch_jobs/suggestion_stats_computation_jobs_test.py | 294 | # Define a fixed datetime. | COMMENT |
| MEDIUM | …s/batch_jobs/suggestion_stats_computation_jobs_test.py | 791 | # Define a fixed datetime. | COMMENT |
| MEDIUM⚡ | …jobs/batch_jobs/exp_version_history_computation_job.py | 926 | # The following block is used to prevent MyPy errors. | COMMENT |
| MEDIUM | …tch_jobs/translation_opportunity_backfill_jobs_test.py | 390 | # Create a new exploration 'exp_2' with non-empty content. | COMMENT |
| MEDIUM | …tch_jobs/translation_opportunity_backfill_jobs_test.py | 523 | # Create a new exploration 'exp_3'. | COMMENT |
| MEDIUM | …/jobs/batch_jobs/cloud_task_run_migration_jobs_test.py | 57 | # Create a recent model in RUNNING state (should not be updated). | COMMENT |
| MEDIUM | …/jobs/batch_jobs/cloud_task_run_migration_jobs_test.py | 73 | # Create a model in SUCCEEDED state (should not be updated). | COMMENT |
| MEDIUM | …/jobs/batch_jobs/cloud_task_run_migration_jobs_test.py | 272 | # Create a non-stale model that should not be updated. | COMMENT |
| MEDIUM | …/jobs/batch_jobs/cloud_task_run_migration_jobs_test.py | 590 | # Create a stale model in RUNNING state (should be logged but not updated). | COMMENT |
| MEDIUM | core/controllers/base_test.py | 170 | # Create a user to test redirect behavior for the learner. | COMMENT |
| MEDIUM | core/controllers/base_test.py | 186 | # Create a new user but do not submit their registration form. | COMMENT |
| MEDIUM | core/controllers/base_test.py | 914 | # Create a token and check that it expires correctly. | COMMENT |
| MEDIUM | core/controllers/feedback_test.py | 358 | # Create a thread for others to post to. | COMMENT |
| MEDIUM | core/controllers/feedback_test.py | 473 | # Create an exploration. | COMMENT |
| MEDIUM | core/controllers/blog_dashboard_test.py | 129 | # Create a blog post to trigger author model creation. | COMMENT |
| MEDIUM | core/controllers/learner_group_test.py | 239 | # Create a learner group. | COMMENT |
| MEDIUM | core/controllers/learner_group_test.py | 1599 | # Create a learner group. | COMMENT |
| MEDIUM | core/controllers/suggestion_test.py | 3367 | # Create a mock suggestion with a different suggestion_type. | COMMENT |
| MEDIUM | core/controllers/suggestion_test.py | 4011 | # Create a new exploration and linked story. | COMMENT |
| MEDIUM | core/controllers/suggestion_test.py | 4031 | # Create a translation suggestion for the Continue button text. | COMMENT |
| MEDIUM | core/controllers/suggestion_test.py | 4121 | # Create a new exploration, link a new story, and create a corresponding | COMMENT |
| MEDIUM | core/controllers/admin_test.py | 2516 | # Create a skill with description 'Dummy Skill 1' but with a different | COMMENT |
| MEDIUM | core/controllers/classroom_test.py | 278 | # Create a prerequisite topic for a classroom and delete its summary. | COMMENT |
| MEDIUM | core/controllers/classroom_test.py | 344 | # Create a published classroom with a url_fragment matching 'math'. | COMMENT |
| MEDIUM | core/controllers/classroom_test.py | 356 | # Create an unpublished classroom with a url_fragment that does not | COMMENT |
| MEDIUM | core/controllers/classroom_test.py | 365 | # Create a published classroom with a url_fragment that does not match | COMMENT |
| MEDIUM | core/controllers/editor_test.py | 2479 | # Create a random user. | COMMENT |
| MEDIUM⚡ | core/controllers/editor_test.py | 665 | # Create a simple exploration. | STRING |
| MEDIUM | core/controllers/editor_test.py | 927 | # Create a simple exploration. | STRING |
| MEDIUM | core/controllers/editor_test.py | 958 | # Create a simple exploration. | STRING |
| MEDIUM | core/controllers/editor_test.py | 988 | # Create a simple exploration. | STRING |
| MEDIUM | core/controllers/cron_test.py | 381 | # Create a translation suggestion so that the reviewer has something | COMMENT |
| MEDIUM | core/controllers/cron_test.py | 645 | # Create a translation suggestion so that the reviewer has something | COMMENT |
| MEDIUM | core/controllers/android_test.py | 741 | # Create a skill and two questions, linking each question to that skill. | COMMENT |
| MEDIUM | core/controllers/android_test.py | 824 | # Create a skill and three questions linked to that skill. | COMMENT |
| MEDIUM | core/controllers/reader.py | 2105 | # Create a new unique_progress_url_id. | COMMENT |
| MEDIUM | core/controllers/reader.py | 2110 | # Create a new model corresponding to the new progress id. | COMMENT |
| MEDIUM | core/controllers/admin.py | 1145 | # Create a default arc covering all nodes. | COMMENT |
| MEDIUM | core/controllers/admin.py | 1618 | # Create a default arc covering all nodes. | COMMENT |
| MEDIUM⚡ | core/controllers/contributor_dashboard_test.py | 523 | # Create a translation suggestion for exploration 0. | COMMENT |
| MEDIUM⚡ | core/controllers/contributor_dashboard_test.py | 2141 | # Create a topic. | COMMENT |
| MEDIUM | core/controllers/contributor_dashboard_test.py | 340 | # Create a new topic. | COMMENT |
| MEDIUM | core/controllers/contributor_dashboard_test.py | 399 | # Create a new topic. | COMMENT |
| MEDIUM | core/controllers/contributor_dashboard_test.py | 557 | # Create a translation suggestion in Hindi. | COMMENT |
| MEDIUM | core/controllers/contributor_dashboard_test.py | 576 | # Create a translation suggestion in Spanish. | COMMENT |
| MEDIUM | core/controllers/contributor_dashboard_test.py | 642 | # Create a translation suggestion in Hindi. | COMMENT |
| MEDIUM | core/controllers/contributor_dashboard_test.py | 661 | # Create a translation suggestion in Spanish. | COMMENT |
| 74 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 31 | // ┌────────┬───────────────State1───────────────┬───────┐ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 33 | // │ │ ┌──────┘ │ └──────┐ │ │ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 37 | // │ └────────────────┐ │ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 39 | // └───────────────────────►State4◄──────────────┘ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 402 | // ┌───────────┐ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 404 | // └────┬──────┘ │ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 406 | // │ ┌───────────┐ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 408 | // │ └┬──────────┘ │ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 410 | // │ │ ┌───────────┐ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 412 | // │ │ │ └───────────┘ │ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 414 | // │ │ │ ┌───────────┐ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 415 | // │ │ │ ┌────────┤ State8 ├──┐ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 416 | // │ │ │ │ └───────────┘ │ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 418 | // │ │ │ │ ┌───────────┐ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 419 | // │ │ │ │ ┌─────────────┤ State7 ├──┐ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 420 | // │ │ │ │ │ └───────────┘ │ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 422 | // │ │ │ │ │ ┌───────────┐ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 424 | // │ │ │ │ │ │ └─────┬─────┘ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 426 | // │ │ │ │ │ │ ┌─────▼─────┐ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 428 | // ▼ ▼ ▼ ▼ ▼ │ └─┬─────────┘ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 429 | // ┌───────────┐ ◄─────────────────┘ │ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 431 | // └─────┬─────┘◄───────────────────────┘ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 433 | // ┌─────▼─────┐ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 435 | // └───────────┘ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 958 | // ┌──────────────┐ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 960 | // └──┬────────┬──┴──────┐ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 964 | // └──────┘ └──────┘ └──────┘. | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 1040 | // ┌──────────────┬───────────────┐ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 1042 | // └──┬────────┬──┴──────┐ │ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 1046 | // └──────┘ └──────┘ └──────┘ └──────┘. | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 1140 | // ┌──────────────┬───────────────┐ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 1142 | // │ └──┬────────┬──┴──────┐ │ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 1146 | // │ └──────┘ └──────┘ └──────┘ └──────┘ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 1147 | // │ ┌──────┐ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 1148 | // └─────────────►State5│ | COMMENT |
| MEDIUM⚡ | …components/graph-services/graph-layout.service.spec.ts | 1149 | // └──────┘ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 815 | # ┌────────────────┐ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 817 | # └──┬───────────┬─┘ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 820 | # ┌────────┴──┐ ┌─┴─────────┐ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 822 | # └───────────┘ └─┬─────────┘ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 824 | # ┌─────────────┴─┐ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 826 | # └───────────────┘. | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 990 | # ┌────────────────┐ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 992 | # └──┬───────────┬─┘ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 995 | # ┌────────┴──┐ ┌─┴─────────┐ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 997 | # └────────┬──┘ └───────────┘ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 999 | # ┌─┴─────────────┐ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 1001 | # └───────────────┘. | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 1050 | # ┌────────────────┐ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 1052 | # └─┬─────┬──────┬─┘ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 1053 | # ┌───────────┐ │ │ │ ┌────────────┐ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 1054 | # │ A ├────┘ │ └─────┤ C │ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 1055 | # └────┬──────┘ │ └─────┬──────┘ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 1056 | # │ ┌────┴─────┐ │ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 1058 | # │ └──┬───────┘ │ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 1059 | # └─────────┐ │ │ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 1060 | # ┌──────┴─────┴─┐ ┌─────────────┘ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 1062 | # └─────────────┬┘ │ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 1064 | # ┌──┴─────┴──┐ | COMMENT |
| MEDIUM⚡ | core/domain/exp_domain_test.py | 1066 | # └───────────┘. | COMMENT |
| 24 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/schema_utils.py | 94 | CODE | |
| LOW | core/schema_utils_test.py | 352 | CODE | |
| LOW | core/utils.py | 184 | CODE | |
| LOW | core/platform/models.py | 89 | CODE | |
| LOW | core/platform/models.py | 271 | CODE | |
| LOW | core/platform/taskqueue/cloud_tasks_emulator.py | 117 | CODE | |
| LOW | …e/platform/bulk_email/mailchimp_bulk_email_services.py | 185 | CODE | |
| LOW | core/platform/storage/cloud_storage_emulator.py | 42 | CODE | |
| LOW | …rm/speech_synthesis/azure_speech_synthesis_services.py | 346 | CODE | |
| LOW | core/tests/test_utils.py | 328 | CODE | |
| LOW | core/tests/test_utils.py | 814 | CODE | |
| LOW | core/tests/test_utils.py | 3162 | CODE | |
| LOW | core/storage/base_model/gae_models.py | 368 | CODE | |
| LOW | core/storage/suggestion/gae_models.py | 678 | CODE | |
| LOW | core/storage/suggestion/gae_models.py | 867 | CODE | |
| LOW | core/storage/suggestion/gae_models.py | 1027 | CODE | |
| LOW | core/storage/suggestion/gae_models.py | 2515 | CODE | |
| LOW | core/storage/suggestion/gae_models.py | 2941 | CODE | |
| LOW | core/storage/suggestion/gae_models.py | 3279 | CODE | |
| LOW | core/storage/suggestion/gae_models.py | 3571 | CODE | |
| LOW | core/storage/app_feedback_report/gae_models.py | 384 | CODE | |
| LOW | core/storage/question/gae_models.py | 476 | CODE | |
| LOW | core/jobs/transforms/validation/base_validation.py | 339 | CODE | |
| LOW | core/jobs/batch_jobs/voiceover_synthesis_jobs.py | 197 | CODE | |
| LOW | …e/jobs/batch_jobs/suggestion_stats_computation_jobs.py | 480 | CODE | |
| LOW | …e/jobs/batch_jobs/suggestion_stats_computation_jobs.py | 570 | CODE | |
| LOW | core/jobs/batch_jobs/story_node_jobs.py | 53 | CODE | |
| LOW | core/jobs/batch_jobs/cloud_task_run_migration_jobs.py | 184 | CODE | |
| LOW | …jobs/batch_jobs/exp_version_history_computation_job.py | 140 | CODE | |
| LOW | …jobs/batch_jobs/exp_version_history_computation_job.py | 504 | CODE | |
| LOW | …jobs/batch_jobs/exp_version_history_computation_job.py | 730 | CODE | |
| LOW | …bs/batch_jobs/translation_opportunity_backfill_jobs.py | 68 | CODE | |
| LOW | …h_jobs/synthesize_voiceover_by_language_accent_jobs.py | 202 | CODE | |
| LOW | …e/jobs/batch_jobs/contributor_admin_stats_jobs_test.py | 1518 | CODE | |
| LOW | core/jobs/batch_jobs/number_with_units_audit_jobs.py | 103 | CODE | |
| LOW | core/jobs/batch_jobs/translation_migration_jobs.py | 52 | CODE | |
| LOW | core/jobs/batch_jobs/opportunity_management_jobs.py | 301 | CODE | |
| LOW | …e/jobs/batch_jobs/delete_duplicate_content_ids_jobs.py | 258 | CODE | |
| LOW | …e/jobs/batch_jobs/delete_duplicate_content_ids_jobs.py | 332 | CODE | |
| LOW | …alid_suggestion_and_delete_invalid_translation_jobs.py | 388 | CODE | |
| LOW | …alid_suggestion_and_delete_invalid_translation_jobs.py | 558 | CODE | |
| LOW | core/jobs/batch_jobs/contributor_admin_stats_jobs.py | 432 | CODE | |
| LOW | core/jobs/batch_jobs/contributor_admin_stats_jobs.py | 684 | CODE | |
| LOW | core/jobs/batch_jobs/contributor_admin_stats_jobs.py | 1096 | CODE | |
| LOW | core/jobs/batch_jobs/contributor_admin_stats_jobs.py | 1249 | CODE | |
| LOW | core/jobs/batch_jobs/contributor_admin_stats_jobs.py | 1885 | CODE | |
| LOW | core/jobs/batch_jobs/contributor_admin_stats_jobs.py | 2028 | CODE | |
| LOW | core/controllers/base_test.py | 1074 | CODE | |
| LOW | core/controllers/base_test.py | 1161 | CODE | |
| LOW | core/controllers/base_test.py | 1204 | CODE | |
| LOW | core/controllers/base_test.py | 1413 | CODE | |
| LOW | core/controllers/base_test.py | 1847 | CODE | |
| LOW | core/controllers/payload_validator.py | 66 | CODE | |
| LOW | core/controllers/voiceover.py | 387 | CODE | |
| LOW | core/controllers/profile.py | 353 | CODE | |
| LOW | core/controllers/profile.py | 684 | CODE | |
| LOW | core/controllers/topic_viewer.py | 80 | CODE | |
| LOW | core/controllers/cron_test.py | 996 | CODE | |
| LOW | core/controllers/reader.py | 150 | CODE | |
| LOW | core/controllers/skill_editor.py | 175 | CODE | |
| 232 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/schema_utils.py | 188 | except Exception as e: | CODE |
| LOW | core/schema_utils.py | 199 | except Exception as e: | CODE |
| LOW | core/schema_utils_test.py | 302 | except Exception as e: | CODE |
| LOW | …e/platform/bulk_email/mailchimp_bulk_email_services.py | 322 | except Exception as error: | CODE |
| LOW | core/platform/secrets/cloud_secrets_services.py | 65 | except Exception: | CODE |
| LOW | core/platform/datastore/cloud_datastore_services.py | 133 | except Exception as e: | CODE |
| LOW | core/tests/test_utils.py | 1558 | except Exception as e: | CODE |
| LOW | core/tests/test_utils_test.py | 650 | except Exception as e: | CODE |
| LOW | core/jobs/jobs_manager.py | 218 | except Exception as e: | CODE |
| LOW | core/jobs/jobs_manager.py | 274 | except Exception: | CODE |
| LOW | core/jobs/jobs_manager.py | 301 | except Exception: | CODE |
| LOW | core/jobs/io/gcs_io.py | 85 | except Exception: | CODE |
| LOW | core/jobs/transforms/validation/base_validation.py | 369 | except Exception as e: | CODE |
| LOW | core/jobs/transforms/validation/base_validation.py | 443 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/voiceover_synthesis_jobs.py | 189 | except Exception: | CODE |
| LOW | core/jobs/batch_jobs/voiceover_synthesis_jobs.py | 423 | except Exception as error: | CODE |
| LOW | …e/jobs/batch_jobs/suggestion_stats_computation_jobs.py | 563 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/question_migration_jobs.py | 72 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/question_migration_jobs.py | 170 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/question_migration_jobs.py | 266 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/exploration_voiceover_sync_jobs.py | 143 | except Exception: | CODE |
| LOW | core/jobs/batch_jobs/story_node_jobs.py | 179 | except Exception as e: | CODE |
| LOW⚡ | …jobs/batch_jobs/exp_version_history_computation_job.py | 923 | except Exception as e: | CODE |
| LOW | …jobs/batch_jobs/exp_version_history_computation_job.py | 137 | except Exception: | CODE |
| LOW | …jobs/batch_jobs/exp_version_history_computation_job.py | 267 | except Exception: | CODE |
| LOW | …jobs/batch_jobs/exp_version_history_computation_job.py | 331 | except Exception: | CODE |
| LOW | …jobs/batch_jobs/exp_version_history_computation_job.py | 805 | except Exception: | CODE |
| LOW | …jobs/batch_jobs/exp_version_history_computation_job.py | 960 | except Exception: | CODE |
| LOW | core/jobs/batch_jobs/story_migration_jobs.py | 99 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/exp_migration_jobs.py | 93 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/exp_migration_jobs.py | 311 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/exp_migration_jobs.py | 420 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/exp_migration_jobs.py | 519 | except Exception: | CODE |
| LOW | core/jobs/batch_jobs/exp_migration_jobs.py | 567 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/exp_migration_jobs.py | 676 | except Exception: | CODE |
| LOW | core/jobs/batch_jobs/exp_migration_jobs.py | 722 | except Exception as e: | CODE |
| LOW | …h_jobs/synthesize_voiceover_by_language_accent_jobs.py | 437 | except Exception as error: | CODE |
| LOW | core/jobs/batch_jobs/subtopic_migration_jobs.py | 80 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/suggestion_migration_jobs.py | 281 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/translation_migration_jobs.py | 106 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/translation_migration_jobs.py | 140 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/skill_migration_jobs.py | 76 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/opportunity_management_jobs.py | 173 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/opportunity_management_jobs.py | 357 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/topic_migration_jobs.py | 74 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/contributor_admin_stats_jobs.py | 595 | except Exception as e: | CODE |
| LOW | core/jobs/batch_jobs/contributor_admin_stats_jobs.py | 820 | except Exception as e: | CODE |
| LOW | core/controllers/payload_validator.py | 124 | except Exception as e: | CODE |
| LOW | core/controllers/questions_list.py | 65 | except Exception as e: | CODE |
| LOW | core/controllers/tasks.py | 356 | except Exception as e: | CODE |
| LOW | core/controllers/tasks.py | 513 | except Exception as e: | CODE |
| LOW | core/controllers/question_editor.py | 68 | except Exception as e: | CODE |
| LOW | core/controllers/question_editor.py | 73 | except Exception as e: | CODE |
| LOW | core/controllers/question_editor.py | 96 | except Exception as e: | CODE |
| LOW | core/controllers/skill_mastery.py | 93 | except Exception as e: | CODE |
| LOW | core/controllers/skill_mastery.py | 143 | except Exception as e: | CODE |
| LOW | core/controllers/story_viewer.py | 179 | except Exception as e: | CODE |
| LOW | core/controllers/release_coordinator.py | 266 | except Exception as e: | CODE |
| LOW | core/controllers/skill_editor.py | 331 | except Exception as e: | CODE |
| LOW | core/controllers/topic_editor.py | 973 | except Exception as e: | CODE |
| 84 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …ctives/navigation-bars/top-navigation-bar.component.ts | 232 | this.windowRef.nativeWindow.location.pathname.split('/')[1]; | CODE |
| CRITICAL | …ommon-elements/classroom-navigation-links.component.ts | 82 | this.windowRef.nativeWindow.location.pathname.split('/')[1]; | CODE |
| CRITICAL | …templates/pages/library-page/library-page.component.ts | 387 | this.windowRef.nativeWindow.location.pathname.split('/'); | CODE |
| CRITICAL | …s/library-page/search-bar/search-bar.component.spec.ts | 423 | windowRef.nativeWindow.history.pushState.calls.reset(); | CODE |
| CRITICAL | …c-editor-page/services/topic-editor-routing.service.ts | 112 | return parseInt(this.windowRef.nativeWindow.location.hash.split('/')[2]); | CODE |
| CRITICAL | …ges/exploration-editor-page/services/router.service.ts | 69 | this._changeTab(this.windowRef.nativeWindow.location.hash.split('#')[1]); | CODE |
| CRITICAL | …ditor-page/services/story-editor-navigation.service.ts | 66 | const chapterId = this.windowRef.nativeWindow.location.hash.split('/')[2]; | CODE |
| CRITICAL | …ditor-page/services/story-editor-navigation.service.ts | 76 | this.windowRef.nativeWindow.location.hash.split('/')[1] === | CODE |
| CRITICAL | …ges/topic-landing-page/topic-landing-page.component.ts | 117 | let pathArray = this.windowRef.nativeWindow.location.pathname.split('/'); | CODE |
| CRITICAL | …/services/contextual/meta-tag-customization.service.ts | 48 | this.windowRef.nativeWindow.document.head.appendChild(meta); | CODE |
| CRITICAL | …contextual/document-attribute-customization.service.ts | 30 | this.windowRef.nativeWindow.document.documentElement.setAttribute( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/platform/datastore/cloud_datastore_services.py | 308 | # Add the keys to the list of keys whose entities we have to fetch. | COMMENT |
| LOW | core/storage/opportunity/gae_models.py | 342 | # Check if entity_type is valid. | COMMENT |
| LOW⚡ | core/storage/user/gae_models_test.py | 3634 | # Check if passing a non-existent user_id does not fail. | COMMENT |
| LOW | core/storage/user/gae_models_test.py | 3267 | # Check if passing a non-existent user_id does not fail. | COMMENT |
| LOW | core/storage/feedback/gae_models.py | 508 | # Check if the new ids are valid. | COMMENT |
| LOW | …/jobs/batch_jobs/recover_orphaned_translations_jobs.py | 132 | # Check if the merged dict adds anything new. | COMMENT |
| LOW | core/jobs/batch_jobs/contributor_admin_stats_jobs.py | 498 | # Iterate over the list and count occurrences. | COMMENT |
| LOW | core/jobs/batch_jobs/contributor_admin_stats_jobs.py | 747 | # Iterate over the list and count occurrences. | COMMENT |
| LOW | core/jobs/batch_jobs/contributor_admin_stats_jobs.py | 1165 | # Check if xploration opportunity model exists. | COMMENT |
| LOW | core/jobs/batch_jobs/contributor_admin_stats_jobs.py | 1198 | # Check if xploration opportunity model exists. | COMMENT |
| LOW | core/jobs/batch_jobs/contributor_admin_stats_jobs.py | 1231 | # Check if xploration opportunity model exists. | COMMENT |
| LOW | core/jobs/batch_jobs/contributor_admin_stats_jobs.py | 1320 | # Check if xploration opportunity model exists. | COMMENT |
| LOW⚡ | core/controllers/voice_artist_test.py | 346 | # Check if method returns 200 http status. | COMMENT |
| LOW | core/controllers/feedback_test.py | 602 | # Check if the new message is also added to the read list. | COMMENT |
| LOW | core/controllers/learner_group.py | 211 | # Check if user is the facilitator of the learner group, as only | COMMENT |
| LOW | core/controllers/library_test.py | 518 | # Check if the language preference is default. | COMMENT |
| LOW | core/controllers/library_test.py | 690 | # Check if the language preference is default. | COMMENT |
| LOW | core/controllers/library_test.py | 784 | # Assign rating to exploration to test handler for top rated | COMMENT |
| LOW | core/controllers/library_test.py | 816 | # Assign rating to exploration to test handler for top rated | COMMENT |
| LOW | core/domain/feedback_services_test.py | 747 | # Check if the number of unread messages match. | COMMENT |
| LOW | core/domain/feedback_services_test.py | 775 | # Check if the number of unread messages is equal to 1. | COMMENT |
| LOW | core/domain/feedback_services_test.py | 850 | # Check if the message is added to the read section of the viewer. | COMMENT |
| LOW | core/domain/exp_domain.py | 2176 | # Check if first state is a checkpoint or not. | COMMENT |
| LOW | core/domain/exp_domain.py | 2184 | # Check if terminal states are checkpoints. | COMMENT |
| LOW | core/domain/exp_domain.py | 2196 | # Check if checkpoint count is between 1 and 8, inclusive. | COMMENT |
| LOW | core/domain/exp_domain.py | 2207 | # Check if a state marked as a checkpoint is bypassable. | COMMENT |
| LOW | core/domain/customization_args_util_test.py | 88 | # Check if no error is produced for valid customization args. | COMMENT |
| LOW | core/domain/customization_args_util_test.py | 100 | # Check if error is produced when arg name is invalid. | COMMENT |
| LOW | core/domain/customization_args_util_test.py | 114 | # Check if error is produced when extra args are present. | COMMENT |
| LOW | core/domain/customization_args_util_test.py | 129 | # Check if no error is produced when arg type is not valid. | COMMENT |
| LOW | core/domain/customization_args_util_test.py | 176 | # Check if error is produced for missing customization args. | COMMENT |
| LOW | core/domain/customization_args_util_test.py | 188 | # Check if error is produced when arg name is invalid. | COMMENT |
| LOW | core/domain/customization_args_util_test.py | 202 | # Check if error is produced when extra args are present. | COMMENT |
| LOW | core/domain/customization_args_util_test.py | 217 | # Check if no error is produced when arg type is not valid. | COMMENT |
| LOW⚡ | core/domain/state_domain.py | 4045 | # Check if the state_dict can be converted to a State. | COMMENT |
| LOW | core/domain/state_domain.py | 3395 | # Check if there are input keys which are not rule parameters. | COMMENT |
| LOW | core/domain/state_domain.py | 3402 | # Check if there are missing parameters. | COMMENT |
| LOW | core/domain/question_domain.py | 984 | # Assign values to html fields. | COMMENT |
| LOW⚡ | core/domain/learner_goals_services_test.py | 356 | # Check if the removed topic is not present in the learner goals. | COMMENT |
| LOW⚡ | core/domain/learner_goals_services_test.py | 362 | # Check if the remaining topic is still present in the learner goals. | COMMENT |
| LOW⚡ | core/domain/learner_goals_services_test.py | 371 | # Check if both topics are not present in the learner goals. | COMMENT |
| LOW | core/domain/topic_services.py | 833 | # Check if study guide already exists in our modified collection. | COMMENT |
| LOW | core/domain/wipeout_service.py | 737 | # Verify if user profile picture is deleted. | COMMENT |
| LOW | scripts/install_python_prod_dependencies_test.py | 546 | # Read the file and verify the content. | COMMENT |
| LOW | scripts/check_unused_i18n_keys.py | 93 | # Check if key literally exists in code. | COMMENT |
| LOW | scripts/install_python_prod_dependencies.py | 195 | # Check if this is a direct URL package (from git). | COMMENT |
| LOW | scripts/install_python_prod_dependencies.py | 322 | # Check if this is a git URL dependency. | COMMENT |
| LOW | scripts/build_test.py | 319 | # Set constant to provide everything to frontend. | COMMENT |
| LOW | scripts/build_test.py | 355 | # Set constant to provide everything to frontend. | COMMENT |
| LOW | scripts/servers.py | 417 | # Check if a redis dump file currently exists. This file contains residual | COMMENT |
| LOW | scripts/servers.py | 610 | # Check if a socket file exists. This file can exist when previous instance | COMMENT |
| LOW | scripts/run_lighthouse_tests.py | 330 | # Verify if Chrome is installed. | COMMENT |
| LOW | scripts/run_backend_tests.py | 480 | # Check if this is a specific test (has _test. in it). | COMMENT |
| LOW | scripts/run_backend_tests.py | 610 | # Check if target either ends with '_test' which means a path to | COMMENT |
| LOW | scripts/linters/js_ts_linter.py | 94 | # Check if we have enough lines before accessing indices. | COMMENT |
| LOW | scripts/linters/run_lint_checks.py | 319 | # Check if 'js' and 'ts' both are present in file_extensions_to_lint. | COMMENT |
| LOW⚡ | scripts/linters/pylint_extensions.py | 1769 | # Check if variable name is used. | COMMENT |
| LOW⚡ | scripts/linters/pylint_extensions.py | 1775 | # Check if allowed prefix is used. | COMMENT |
| LOW⚡ | scripts/linters/pylint_extensions.py | 1781 | # Check if comment contains any excluded phrase. | COMMENT |
| LOW | scripts/linters/pylint_extensions.py | 131 | # Check if token type is an operator and is either a | COMMENT |
| 8 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mypy_imports.py | 90 | __all__ = [ | CODE |
| LOW | core/tests/test_utils.py | 2896 | def set_question_admins(self, question_admin_usernames: List[str]) -> None: | CODE |
| LOW | core/tests/test_utils.py | 2926 | def set_moderators(self, moderator_usernames: List[str]) -> None: | CODE |
| LOW | core/tests/test_utils.py | 2935 | def set_voiceover_admin(self, voiceover_admin_username: List[str]) -> None: | CODE |
| LOW | core/storage/base_model/gae_models.py | 409 | def update_timestamps(self, update_last_updated_time: bool = True) -> None: | CODE |
| LOW | core/domain/feedback_services.py | 1187 | def update_feedback_email_retries_transactional(user_id: str) -> None: | CODE |
| LOW | core/domain/exp_services.py | 4287 | def set_exploration_edits_allowed(exp_id: str, edits_are_allowed: bool) -> None: | CODE |
| LOW⚡ | core/domain/story_domain.py | 2425 | def update_description(self, description: str) -> None: | CODE |
| LOW⚡ | core/domain/story_domain.py | 2433 | def update_notes(self, notes: str) -> None: | CODE |
| LOW⚡ | core/domain/story_domain.py | 2441 | def update_language_code(self, language_code: str) -> None: | CODE |
| LOW⚡ | core/domain/story_domain.py | 2449 | def update_url_fragment(self, url_fragment: str) -> None: | CODE |
| LOW⚡ | core/domain/story_domain.py | 2457 | def update_meta_tag_content(self, new_meta_tag_content: str) -> None: | CODE |
| LOW | core/domain/story_domain.py | 2379 | def update_title(self, title: str) -> None: | CODE |
| LOW | core/domain/story_domain.py | 2539 | def update_node_outline(self, node_id: str, new_outline: str) -> None: | CODE |
| LOW | core/domain/story_domain.py | 2549 | def update_node_title(self, node_id: str, new_title: str) -> None: | CODE |
| LOW | core/domain/story_domain.py | 2669 | def update_node_status(self, node_id: str, new_status: str) -> None: | CODE |
| LOW | core/domain/story_domain.py | 2893 | def update_initial_node(self, new_initial_node_id: str) -> None: | CODE |
| LOW | core/domain/opportunity_domain.py | 535 | def _update_language_completeness(self, language_code: str) -> None: | CODE |
| LOW | core/domain/opportunity_domain.py | 549 | def update_translation_count(self, language_code: str, count: int) -> None: | CODE |
| LOW | core/domain/opportunity_domain.py | 560 | def update_content_count(self, content_count: int) -> None: | CODE |
| LOW | core/domain/opportunity_domain.py | 574 | def update_topic_ids(self, topic_ids: List[str]) -> None: | CODE |
| LOW⚡ | core/domain/exp_domain.py | 2526 | def update_title(self, title: str) -> None: | CODE |
| LOW⚡ | core/domain/exp_domain.py | 2534 | def update_category(self, category: str) -> None: | CODE |
| LOW⚡ | core/domain/exp_domain.py | 2542 | def update_objective(self, objective: str) -> None: | CODE |
| LOW⚡ | core/domain/exp_domain.py | 2550 | def update_language_code(self, language_code: str) -> None: | CODE |
| LOW⚡ | core/domain/exp_domain.py | 2558 | def update_tags(self, tags: List[str]) -> None: | CODE |
| LOW⚡ | core/domain/exp_domain.py | 2566 | def update_blurb(self, blurb: str) -> None: | CODE |
| LOW⚡ | core/domain/exp_domain.py | 2574 | def update_author_notes(self, author_notes: str) -> None: | CODE |
| LOW⚡ | core/domain/exp_domain.py | 2628 | def update_auto_tts_enabled(self, auto_tts_enabled: bool) -> None: | CODE |
| LOW⚡ | core/domain/exp_domain.py | 2637 | def update_next_content_id_index(self, next_content_id_index: int) -> None: | CODE |
| LOW | core/domain/exp_domain.py | 2607 | def update_init_state_name(self, init_state_name: str) -> None: | CODE |
| LOW | core/domain/recommendations_services.py | 290 | def update_topic_similarities(csv_data: str) -> None: | CODE |
| LOW⚡ | core/domain/suggestion_registry.py | 198 | def set_suggestion_status_to_accepted(self) -> None: | CODE |
| LOW⚡ | core/domain/suggestion_registry.py | 202 | def set_suggestion_status_to_in_review(self) -> None: | CODE |
| LOW⚡ | core/domain/suggestion_registry.py | 206 | def set_suggestion_status_to_rejected(self) -> None: | CODE |
| LOW⚡ | core/domain/suggestion_registry.py | 210 | def set_final_reviewer_id(self, reviewer_id: str) -> None: | CODE |
| LOW | core/domain/suggestion_registry.py | 970 | def _update_change_to_latest_state_schema_version(self) -> None: | CODE |
| LOW | core/domain/cloud_task_domain.py | 333 | def update_remaining_content_status_as_succeeded(self) -> None: | CODE |
| LOW⚡ | core/domain/blog_domain.py | 367 | def update_title(self, new_title: str) -> None: | CODE |
| LOW⚡ | core/domain/blog_domain.py | 376 | def update_url_fragment(self, new_url_fragment: str) -> None: | CODE |
| LOW⚡ | core/domain/blog_domain.py | 398 | def update_content(self, content: str) -> None: | CODE |
| LOW⚡ | core/domain/blog_domain.py | 406 | def update_tags(self, tags: List[str]) -> None: | CODE |
| LOW | core/domain/stats_domain.py | 2259 | def update_state_reference(self, new_state_reference: str) -> None: | CODE |
| LOW⚡ | core/domain/topic_domain.py | 1969 | def update_abbreviated_name(self, new_abbreviated_name: str) -> None: | CODE |
| LOW⚡ | core/domain/topic_domain.py | 1978 | def update_url_fragment(self, new_url_fragment: str) -> None: | CODE |
| LOW⚡ | core/domain/topic_domain.py | 2010 | def update_description(self, new_description: str) -> None: | CODE |
| LOW⚡ | core/domain/topic_domain.py | 2018 | def update_language_code(self, new_language_code: str) -> None: | CODE |
| LOW⚡ | core/domain/topic_domain.py | 2026 | def update_meta_tag_content(self, new_meta_tag_content: str) -> None: | CODE |
| LOW | core/domain/topic_domain.py | 1955 | def update_name(self, new_name: str) -> None: | CODE |
| LOW | core/domain/topic_domain.py | 2192 | def update_subtopic_title(self, subtopic_id: int, new_title: str) -> None: | CODE |
| LOW⚡ | core/domain/skill_domain.py | 1682 | def update_description(self, description: str) -> None: | CODE |
| LOW⚡ | core/domain/skill_domain.py | 1690 | def update_language_code(self, language_code: str) -> None: | CODE |
| LOW⚡ | core/domain/skill_domain.py | 1698 | def update_superseding_skill_id(self, superseding_skill_id: str) -> None: | CODE |
| LOW | core/domain/skill_domain.py | 1832 | def update_rubric(self, difficulty: str, explanations: List[str]) -> None: | CODE |
| LOW | core/domain/topic_domain_test.py | 1397 | def _setup_stories(self, topic: topic_domain.Topic) -> None: | CODE |
| LOW | core/domain/user_domain.py | 609 | def update_name(self, updated_name: str) -> None: | CODE |
| LOW | core/domain/user_services.py | 1610 | def set_username(user_id: str, new_username: str) -> None: | CODE |
| LOW | core/domain/user_services.py | 2406 | def update_dashboard_stats_log(user_id: str) -> None: | CODE |
| LOW | core/domain/user_services.py | 2998 | def set_user_has_viewed_lesson_info_modal_once(user_id: str) -> None: | CODE |
| LOW⚡ | core/domain/state_domain.py | 4053 | def update_content(self, content: SubtitledHtml) -> None: | CODE |
| 25 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | core/domain/caching_services_test.py | 151 | '"interaction": {"solution": null, "answer_gr' | CODE |
| HIGH⚡ | core/domain/caching_services_test.py | 152 | 'oups": [{"tagged_skill_misconception_id": null, "outcome": {"param_cha' | CODE |
| HIGH⚡ | core/domain/caching_services_test.py | 155 | '_stuck": null, "refresher_exploration_id": null, "missing_prerequisite' | CODE |
| HIGH⚡ | core/domain/caching_services_test.py | 156 | '_skill_id": null, "labelled_as_correct": false}, "training_data": [], ' | CODE |
| HIGH⚡ | core/domain/caching_services_test.py | 162 | ' null, "refresher_exploration_id": null, "missing_prerequisite_skill_i' | CODE |
| HIGH⚡ | core/domain/caching_services_test.py | 163 | 'd": null, "labelled_as_correct": false}, "customization_args": {"rows"' | CODE |
| HIGH⚡ | core/domain/caching_services_test.py | 169 | 'is a copyright character \\u00a9.</p>"}}]}, "linked_skill_id": null, ' | CODE |
| HIGH⚡ | core/domain/caching_services_test.py | 170 | '"classifier_model_id": null, "content": ' | CODE |
| HIGH | scripts/pre_push_hook.py | 63 | # Git hash of /dev/null, refers to an 'empty' commit. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …e/platform/bulk_email/mailchimp_bulk_email_services.py | 138 | # comprehensive, since, under status 400, they only list a subset of the | COMMENT |
| LOW | core/storage/feedback/gae_models_test.py | 508 | # If we do wish to change it however, we can simply use the put function | COMMENT |
| MEDIUM | core/templates/third-party-imports/gif-frames.import.ts | 33 | // And utilize its functionality for use in the application. | COMMENT |
| MEDIUM | …/state-directives/rule-editor/rule-editor.component.ts | 260 | // TODO(sll): Find a more robust way of doing this. For example, | COMMENT |
| LOW | …s/batch_jobs/missing_translation_images_repair_jobs.py | 290 | # we just use the first elements to represent the whole lists. | COMMENT |
| MEDIUM | core/jobs/batch_jobs/model_validation_jobs.py | 83 | """Runs a comprehensive audit on every model in the datastore.""" | STRING |
| MEDIUM | core/controllers/feedback.py | 513 | """Records when the given user views a feedback thread, in order to clear | STRING |
| LOW | core/domain/suggestion_services.py | 2406 | # If the strings are identical, simply return truncated versions. | COMMENT |
| MEDIUM | core/domain/state_domain.py | 2273 | # name to InteractionCustomizationArg, so that we can utilize | COMMENT |
| MEDIUM | core/domain/voiceover_regeneration_services.py | 369 | # cache fails; otherwise, utilize the cached voiceovers. | COMMENT |
| LOW | scripts/servers.py | 640 | # can just return immediately. | COMMENT |
| MEDIUM | scripts/linters/warranted_angular_security_bypasses.py | 35 | # this list due to the aforementioned reason. | COMMENT |
| MEDIUM | assets/scripts/oppia-player-0.0.1.min.js | 1 | (function(f,a){if(f.hasOwnProperty("OPPIA_EMBED_GLOBALS")){return}f.OPPIA_EMBED_GLOBALS={version:"0.0.1"};function g(i){ | CODE |
| MEDIUM | assets/scripts/oppia-player-0.0.1.min.js | 1 | (function(f,a){if(f.hasOwnProperty("OPPIA_EMBED_GLOBALS")){return}f.OPPIA_EMBED_GLOBALS={version:"0.0.1"};function g(i){ | CODE |
| MEDIUM | assets/scripts/oppia-player-0.0.3.min.js | 1 | !function(t,e){if(!t.hasOwnProperty("OPPIA_EMBED_GLOBALS")){t.OPPIA_EMBED_GLOBALS={version:"0.0.3"};for(var o=function(e | CODE |
| MEDIUM | assets/scripts/oppia-player-0.0.3.min.js | 1 | !function(t,e){if(!t.hasOwnProperty("OPPIA_EMBED_GLOBALS")){t.OPPIA_EMBED_GLOBALS={version:"0.0.3"};for(var o=function(e | CODE |
| MEDIUM | assets/scripts/oppia-player-0.0.2.min.js | 1 | (function(f,a){if(f.hasOwnProperty("OPPIA_EMBED_GLOBALS")){return}f.OPPIA_EMBED_GLOBALS={version:"0.0.2"};var g=function | CODE |
| MEDIUM | assets/scripts/oppia-player-0.0.2.min.js | 1 | (function(f,a){if(f.hasOwnProperty("OPPIA_EMBED_GLOBALS")){return}f.OPPIA_EMBED_GLOBALS={version:"0.0.2"};var g=function | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/platform/storage/cloud_storage_services.py | 77 | CODE | |
| LOW | …rm/speech_synthesis/azure_speech_synthesis_services.py | 210 | CODE | |
| LOW | core/tests/test_utils.py | 4198 | CODE | |
| LOW | core/tests/test_utils.py | 4587 | CODE | |
| LOW | core/domain/user_domain.py | 103 | CODE | |
| LOW | core/domain/user_domain.py | 1597 | CODE | |
| LOW | core/domain/user_services.py | 2162 | CODE | |
| LOW | scripts/scripts_test_utils.py | 59 | CODE | |
| LOW | scripts/servers.py | 159 | CODE | |
| LOW | scripts/run_backend_tests.py | 282 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | core/storage/translation/gae_models.py | 475 | # The AI-generated translation of the source text into the target language. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ates/components/graph-services/graph-layout.service.ts | 232 | // In this implementation, nodes are aligned with a rectangular grid. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | requirements.txt | 2166 | # WARNING: The following packages were not pinned, but pip requires them to be | COMMENT |
| LOW | core/domain/taskqueue_services.py | 38 | # NOTE: The following constants should match the queue names on the | COMMENT |
| LOW | core/domain/story_services.py | 911 | # NOTE: This function should not be called on its own. Access it | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/run_typescript_checks.py | 346 | # This make sure to restore include property to its original value after the | COMMENT |
| LOW | …ta/explorations/all_interactions/all_interactions.yaml | 1325 | to the original number. Also, don't forget to breakdown the decimal place | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/concurrent_task_utils_test.py | 31 | def test_function(unused_arg: str) -> Callable[[], None]: | CODE |
| LOW | scripts/run_backend_tests_test.py | 57 | def test_function(_: str) -> Callable[[], None]: | CODE |