From 76713564fa405dfe68e884f7f8a02cf8eb8c6c67 Mon Sep 17 00:00:00 2001 From: cockroacher <163405488+cockroacher@users.noreply.github.com> Date: Thu, 18 Apr 2024 14:04:59 +0200 Subject: [PATCH] pylint docstring --- tests/privacy_webbkollen.py | 81 ++++++++++++++++++++++++++++++++++++- 1 file changed, 80 insertions(+), 1 deletion(-) diff --git a/tests/privacy_webbkollen.py b/tests/privacy_webbkollen.py index 86c651be..24a427db 100644 --- a/tests/privacy_webbkollen.py +++ b/tests/privacy_webbkollen.py @@ -17,6 +17,25 @@ REVIEW_SHOW_IMPROVEMENTS_ONLY = get_config_or_default('review_show_improvements_only') def run_test(global_translation, lang_code, url): + """ + This function runs a webbkollen (privacy) test on a given URL and + returns a rating and a dictionary. + + The test involves fetching the HTML content of the URL, parsing it, + and rating the results based on certain criteria. + The rating and review are determined by the integrity and + security points obtained from the test results. + + Parameters: + global_translation (function): A function to translate text to a global language. + lang_code (str): The language code for the local translation. + url (str): The URL to be tested. + + Returns: + tuple: A tuple containing the rating object and a dictionary. + The rating object contains the overall rating, review, and integrity and security points. + The dictionary is currently empty but can be used to return additional data if needed. + """ review = '' return_dict = {} rating = Rating(global_translation, REVIEW_SHOW_IMPROVEMENTS_ONLY) @@ -70,6 +89,17 @@ def run_test(global_translation, lang_code, url): return (rating, return_dict) def extend_review_with_date_for_last_run(review, local_translation, result_title): + """ + Extends the review with the date of the last run. + + Args: + review (str): The review to be extended. + local_translation (function): A function that translates text to the local language. + result_title (bs4.element.Tag): The title of the result. + + Returns: + str: The extended review. + """ result_title_beta = result_title.find_all('div', class_="beta") if len(result_title_beta) > 0: for header_info in result_title_beta[0].strings: @@ -79,6 +109,18 @@ def extend_review_with_date_for_last_run(review, local_translation, result_title review += local_translation('TEXT_REVIEW_GENERATED').format(info) def get_html_content(orginal_url, lang_code, local_translation): + """ + Retrieves test result as HTML content from webbkollen website by dataskydd. + + Args: + orginal_url (str): The URL of the webpage to be retrieved. + lang_code (str): The language code for the webpage. + local_translation (function): A function that translates text to the local language. + + Returns: + str: Test result as HTML content. + + """ html_content = '' headers = { 'user-agent': 'Mozilla/5.0 (compatible; Webperf; +https://webperf.se)'} @@ -123,7 +165,25 @@ def get_html_content(orginal_url, lang_code, local_translation): time.sleep(TIME_SLEEP) return html_content -def rate_result(result, global_translation, local_translation): +def rate_result(result, global_translation, local_translation):# pylint: disable=too-many-locals + """ + Rates is calculated by the number of: + successes, alerts, warnings, sub-alerts, and sub-warnings in the result. + Based on these numbers, it calculates the points to remove from the current result. + It also gathers more information from the result. + Finally, it creates a review using the `create_review` function and + sets the integrity and security of the `heading_rating` using the calculated points and + the created review. + + Args: + result (bs4.element.Tag): The result to be rated. + global_translation (function): A function that translates text to a global language. + local_translation (function): A function that translates text to the local language. + + Returns: + Rating: The rating of the result. + + """ heading_rating = Rating(global_translation, REVIEW_SHOW_IMPROVEMENTS_ONLY) points_to_remove_for_current_result = 0.0 @@ -195,6 +255,25 @@ def rate_result(result, global_translation, local_translation): def create_review(local_translation, header, # pylint: disable=too-many-arguments number_of_success, number_of_alerts, number_of_warnings, number_of_sub_alerts, number_of_sub_warnings, more_info): + """ + Creates a review. + The review is created based on the number of: + successes, alerts, warnings, sub-alerts, and sub-warnings. + The review text is translated to the local language using the `local_translation` function. + + Args: + local_translation (function): A function that translates text to the local language. + header (str): The header text of the review. + number_of_success (int): The number of successful operations. + number_of_alerts (int): The number of alerts generated. + number_of_warnings (int): The number of warnings generated. + number_of_sub_alerts (int): The number of sub-alerts generated. + number_of_sub_warnings (int): The number of sub-warnings generated. + more_info (str): Additional information to be added to the review. + + Returns: + str: The review text. + """ review = '- ' + re.sub(REGEX_ALLOWED_CHARS, '', header.text, 0, re.MULTILINE).strip()