def unit_tests(): """Unit tests for the cc_analytics module.""" # ------------------------------------------------------------------------- # DELAYED IMPORTS # ------------------------------------------------------------------------- from cc_unittest import unit_test_ignore unit_test_ignore("", send_analytics_if_necessary) unit_test_ignore("", get_all_tables_with_record_counts)
def unit_tests(): """Unit tests for the cc_blob module.""" # ------------------------------------------------------------------------- # DELAYED IMPORTS # ------------------------------------------------------------------------- from cc_unittest import unit_test_ignore current_pks = pls.db.fetchallfirstvalues( "SELECT _pk FROM {} WHERE _current".format(Blob.TABLENAME) ) test_pks = [None, current_pks[0]] if current_pks else [None] for pk in test_pks: blob = Blob(pk) unit_tests_blob(blob) unit_test_ignore("", get_current_blob_by_client_info, "", 0, ERA_NOW) unit_test_ignore("", get_contemporaneous_blob_by_client_info, "", 0, ERA_NOW, None, None)
def task_unit_test_report(name, r): """Unit tests for reports.""" # ------------------------------------------------------------------------- # DELAYED IMPORTS # ------------------------------------------------------------------------- from cc_unittest import unit_test_ignore unit_test_ignore("Testing {}.get_report_id".format(name), r.get_report_id) unit_test_ignore("Testing {}.get_report_title".format(name), r.get_report_title) unit_test_ignore("Testing {}.get_param_spec_list".format(name), r.get_param_spec_list) unit_test_ignore("Testing {}.get_rows_descriptions".format(name), r.get_rows_descriptions)
def unit_tests(): """Unit tests for cc_session module.""" # ------------------------------------------------------------------------- # DELAYED IMPORTS # ------------------------------------------------------------------------- from cc_unittest import unit_test_ignore unit_test_ignore("", delete_old_sessions) unit_test_ignore("", is_token_in_use, "dummytoken") unit_test_ignore("", generate_token) # skip: establish_session current_pks = pls.db.fetchallfirstvalues( "SELECT id FROM {}".format(Session.TABLENAME) ) test_pks = [None, current_pks[0]] if current_pks else [None] for pk in test_pks: s = Session(pk) unit_tests_session(s)
def unit_tests(): """Unit tests for cc_user module.""" # ------------------------------------------------------------------------- # DELAYED IMPORTS # ------------------------------------------------------------------------- # import cgi import cc_session from cc_unittest import unit_test_ignore unit_test_ignore("", delete_old_account_lockouts) unit_test_ignore("", is_user_locked_out, "dummy_user") unit_test_ignore("", user_locked_out_until, "dummy_user") # skip: lock_user_out # skip: unlock_user # skip: record_login_failure # skip: act_on_login_failure # skip: clear_login_failures unit_test_ignore("", how_many_login_failures, "dummy_user") # skip: enable_user unit_test_ignore("", clear_login_failures_for_nonexistent_users) unit_test_ignore("", clear_dummy_login_failures_if_necessary) unit_test_ignore("", take_some_time_mimicking_password_encryption) user = User("dummy_user") # skip: user.save # skip: user.set_password unit_test_ignore("", user.is_password_valid, "dummy_password") # skip: user.force_password_change # skip: user.login # skip: user.set_password_change_flag_if_necessary unit_test_ignore("", user.must_agree_terms) # skip: user.agree_terms # skip: user.clear_login_failures # skip: user.enable unit_test_ignore("", user_exists, "dummy_user") # skip: create_superuser unit_test_ignore("", get_user, "dummy_user", "dummy_password") unit_test_ignore("", is_username_permissible, "dummy_user") unit_test_ignore("", is_username_permissible, "dummy_user") session = cc_session.Session() # form = cgi.FieldStorage() unit_test_ignore("", enter_new_password, session, "dummy_user") # skip: change_password # skip: set_password_directly unit_test_ignore("", manage_users, session) unit_test_ignore("", edit_user, session, "dummy_user") # skip: change_user unit_test_ignore("", ask_to_add_user, session) # skip: add_user unit_test_ignore("", ask_delete_user, session, "dummy_user") # skip: delete_user unit_test_ignore("", user_management_success_message, "test_msg", True) unit_test_ignore("", user_management_success_message, "test_msg", False) unit_test_ignore("", user_management_failure_message, "test_msg", True) unit_test_ignore("", user_management_failure_message, "test_msg", False)
def unit_tests(): """Unit tests for cc_policy module.""" # ------------------------------------------------------------------------- # DELAYED IMPORTS # ------------------------------------------------------------------------- from cc_unittest import unit_test_ignore test_policies = [ "", "sex AND (failure", "sex AND idnum1", ] test_idnums = [ None, -1, 1 ] bpi = cc_namedtuples.BarePatientInfo( forename="forename", surname="surname", dob="dob", sex="sex", idnum_array=[5] * NUMBER_OF_IDNUMS, ) for p in test_policies: unit_test_ignore("", tokenize_upload_id_policy, p) unit_test_ignore("", tokenize_finalize_id_policy, p) unit_test_ignore("", get_tokenized_id_policy, p) unit_test_ignore("", find_critical_single_numerical_id, ID_POLICY_UPLOAD_TOKENIZED) for i in test_idnums: unit_test_ignore("", is_idnum_mandatory_in_upload_policy, i) unit_test_ignore("", is_idnum_mandatory_in_finalize_policy, i) unit_test_ignore("", is_idnum_mandatory_in_policy, i, ID_POLICY_UPLOAD_TOKENIZED) unit_test_ignore("", upload_id_policy_valid) unit_test_ignore("", finalize_id_policy_valid) unit_test_ignore("", get_upload_id_policy_principal_numeric_id) unit_test_ignore("", get_finalize_id_policy_principal_numeric_id) unit_test_ignore("", satisfies_upload_id_policy, bpi) unit_test_ignore("", satisfies_finalize_id_policy, bpi) unit_test_ignore("", satisfies_id_policy, bpi, ID_POLICY_UPLOAD_TOKENIZED)
def unit_tests_blob(blob): """Unit tests for the Blob class.""" # ------------------------------------------------------------------------- # DELAYED IMPORTS # ------------------------------------------------------------------------- from cc_unittest import unit_test_ignore # skip Blob.make_tables unit_test_ignore("", blob.dump) unit_test_ignore("", blob.get_rotated_image) unit_test_ignore("", blob.get_rotated_image, rotation_clockwise_deg=90) unit_test_ignore("", blob.get_png_img_html) unit_test_ignore("", blob.get_png_img_html, rotation_clockwise_deg=90) unit_test_ignore("", blob.get_png_xml_tuple, "name") unit_test_ignore("", blob.get_png_xml_tuple, "name", rotation_clockwise_deg=90) unit_test_ignore("", blob.get_png_data_url) unit_test_ignore("", blob.is_valid_png)
def unit_tests_session(s): """Unit tests for Session class.""" # ------------------------------------------------------------------------- # DELAYED IMPORTS # ------------------------------------------------------------------------- from cc_unittest import unit_test_ignore ntasks = 75 # skip: make_tables # __set_defaults: not visible to outside world # skip: logout # skip: save unit_test_ignore("", s.get_cookies) # skip: login unit_test_ignore("", s.authorized_as_viewer) unit_test_ignore("", s.authorized_to_add_special_note) unit_test_ignore("", s.user_must_change_password) unit_test_ignore("", s.user_must_agree_terms) # skip: agree_terms unit_test_ignore("", s.authorized_as_superuser) unit_test_ignore("", s.authorized_to_dump) unit_test_ignore("", s.authorized_for_reports) unit_test_ignore("", s.restricted_to_viewing_user) unit_test_ignore("", s.user_may_view_all_patients_when_unfiltered) unit_test_ignore("", s.get_current_user_html, True) unit_test_ignore("", s.get_current_user_html, False) unit_test_ignore("", s.any_patient_filtering) unit_test_ignore("", s.any_specific_patient_filtering) unit_test_ignore("", s.get_current_filter_html) # skip: apply_filters # skip: apply_filter_surname # skip: apply_filter_forename # skip: apply_filter_dob # skip: apply_filter_sex # skip: apply_filter_idnums # skip: apply_filter_task # skip: apply_filter_complete # skip: apply_filter_include_old_versions # skip: apply_filter_device # skip: apply_filter_user # skip: apply_filter_start_datetime # skip: apply_filter_end_datetime # skip: apply_filter_text # skip: clear_filters # skip: clear_filter_surname # skip: clear_filter_forename # skip: clear_filter_dob # skip: clear_filter_sex # skip: clear_filter_idnums # skip: clear_filter_task # skip: clear_filter_complete # skip: clear_filter_include_old_versions # skip: clear_filter_device # skip: clear_filter_user # skip: clear_filter_start_datetime # skip: clear_filter_end_datetime # skip: clear_filter_text unit_test_ignore("", s.get_filter_dob) unit_test_ignore("", s.get_filter_start_datetime) unit_test_ignore("", s.get_filter_end_datetime) unit_test_ignore("", s.get_filter_end_datetime_corrected_1day) unit_test_ignore("", s.get_first_task_to_view) unit_test_ignore("", s.get_last_task_to_view, ntasks) unit_test_ignore("", s.get_npages, ntasks) unit_test_ignore("", s.get_current_page) # skip: change_number_to_view unit_test_ignore("", s.get_number_to_view_selector)
def unit_tests(): """Unit tests for cc_report module.""" # ------------------------------------------------------------------------- # DELAYED IMPORTS # ------------------------------------------------------------------------- import cc_session from cc_unittest import unit_test_ignore session = cc_session.Session() paramspec = { PARAM.TYPE: PARAM.WHICH_IDNUM, PARAM.NAME: "xname", PARAM.LABEL: "label" } form = cgi.FieldStorage() rows = [ ["a1", "a2", "a3"], ["b1", "b2", "b3"], ] descriptions = ["one", "two", "three"] unit_test_ignore("", offer_report_menu, session) unit_test_ignore("", get_param_html, paramspec) unit_test_ignore("", get_params_from_form, [paramspec], form) unit_test_ignore("", get_all_report_ids) unit_test_ignore("", get_report_instance, "hello") unit_test_ignore("", offer_individual_report, session, form) unit_test_ignore("", ws.html_table_from_query, rows, descriptions) unit_test_ignore("", escape_for_tsv, "x") unit_test_ignore("", tsv_from_query, rows, descriptions) unit_test_ignore("", provide_report, session, form) unit_test_ignore("", get_param_html, paramspec) unit_test_ignore("", get_param_html, paramspec) for cls in Report.__subclasses__(): name = cls.__name__ report = cls() task_unit_test_report(name, report)
def unit_tests(): """Unit tests for the cc_dump module.""" # ------------------------------------------------------------------------- # DELAYED IMPORTS # ------------------------------------------------------------------------- from cc_unittest import unit_test_ignore unit_test_ignore("", get_possible_task_tables_views) unit_test_ignore("", get_permitted_tables_and_views) unit_test_ignore("", get_permitted_tables_views_sorted_labelled) unit_test_ignore("", validate_table_list, [None, "phq9", "nonexistent_table"]) unit_test_ignore("", validate_single_table, None) unit_test_ignore("", validate_single_table, "phq9") unit_test_ignore("", validate_single_table, "nonexistent_table") unit_test_ignore("", get_database_dump_as_sql) # get_query_as_tsv tested indirectly unit_test_ignore("", get_view_data_as_tsv, "phq9") unit_test_ignore("", get_view_data_as_tsv, "nonexistent_table") unit_test_ignore("", get_multiple_views_data_as_tsv_zip, [None, "phq9", "nonexistent_table"])