Ejemplo n.º 1
0
def setup_test_pgdb():
    # create the first user if they don't already exist
    admin_user = User.get_existing_user_by_email(PGDB_TEST, TestData.USER_ADMIN["email_addr"])
    if admin_user is None:
        admin_data = TestData.USER_ADMIN
        admin_user = User.create_new_user(
            DB_TUPLE_TEST,
            admin_data["email_addr"],
            admin_data["username"],
            admin_data["cleartext_password"],
            admin_data["user_statement"],
            admin_data["is_enabled"],
            admin_data["metaspace_privileges"],
            admin_data["creator"],
        )
        ns_data = TestData.NODESPACE_1
        Nodespace.create_new_nodespace(
            DB_TUPLE_TEST, ns_data["nodespace_name"], ns_data["nodespace_description"], admin_user.user_id
        )
Ejemplo n.º 2
0
def User_create_and_retrieve_test():
    hans_data = TestData.USER_HANS
    admin_user = User.get_existing_user_by_email(PGDB_TEST, TestData.USER_ADMIN["email_addr"])
    hans_data["creator"] = admin_user.user_id

    with AutoRollbackTransaction() as test_trans:
        creation_date_lb = DateTimeUtil.datetime_now_utc_aware()
        hans = User.create_new_user(
            DB_TUPLE_PT_NM,
            hans_data["email_addr"],
            hans_data["username"],
            hans_data["cleartext_password"],
            hans_data["user_statement"],
            hans_data["is_enabled"],
            hans_data["metaspace_privileges"],
            hans_data["creator"],
        )
        creation_date_ub = DateTimeUtil.datetime_now_utc_aware()

        hans_data["user_id"] = hans.user_id
        hans_data["encrypted_password"] = hans.encrypted_password

        assert creation_date_lb <= hans.creation_date <= creation_date_ub
        for field_name in User.FIELD_NAMES:
            if field_name not in ["creation_date"]:
                assert hans_data[field_name] == vars(hans)[field_name]
        assert hans.check_password(hans_data["cleartext_password"]) == True
        assert hans.check_password(hans_data["new_cleartext_password"]) == False

        hans_data["old_encrypted_password"] = hans_data["encrypted_password"]
        hans_data["modifier"] = hans_data["creator"]
        hans.set_and_save_user_info(
            PGDB_TEST,
            hans_data["new_username"],
            hans_data["new_email_addr"],
            hans_data["new_user_statement"],
            hans_data["modifier"],
        )
        modification_date_lb = DateTimeUtil.datetime_now_utc_aware()
        hans.set_and_save_metaspace_access(
            PGDB_TEST, hans_data["new_is_enabled"], hans_data["new_metaspace_privileges"], hans_data["modifier"]
        )
        hans.set_and_save_encrypted_password(PGDB_TEST, hans_data["new_cleartext_password"], hans_data["modifier"])
        modification_date_ub = DateTimeUtil.datetime_now_utc_aware()

        hans = User.get_existing_user_by_email(PGDB_TEST, hans_data["new_email_addr"])
        hans_data["encrypted_password"] = hans.encrypted_password

        hans_by_id = User.get_existing_user_by_id(PGDB_TEST, hans.user_id)
        for field_name in User.FIELD_NAMES:
            assert getattr(hans, field_name) == getattr(hans_by_id, field_name)

        assert modification_date_lb <= hans.modification_date <= modification_date_ub
        assert hans.username == hans_data["new_username"]
        assert hans.email_addr == hans_data["new_email_addr"]
        assert hans.user_statement == hans_data["new_user_statement"]
        assert hans.metaspace_privileges == hans_data["new_metaspace_privileges"]
        assert hans.modifier == hans_data["modifier"]
        assert hans.check_password(hans_data["new_cleartext_password"]) == True
        assert hans.check_password(hans_data["cleartext_password"]) == False
        assert hans_data["encrypted_password"] != hans_data["old_encrypted_password"]

        latest_pw_chg_audit_entry = PasswordChangeAuditEntry.get_audit_log_entries_for_user(PGDB_TEST, hans.user_id)[0]
        latest_ms_priv_audit_entry = MetaspacePrivilegeAuditEntry.get_audit_log_entries_for_user(
            PGDB_TEST, hans.user_id
        )[0]

        assert latest_pw_chg_audit_entry.updated_user == hans.user_id
        assert latest_pw_chg_audit_entry.updating_user == hans.modifier
        assert modification_date_lb <= latest_pw_chg_audit_entry.passwd_chg_date <= modification_date_ub
        assert latest_ms_priv_audit_entry.updated_user == hans.user_id
        assert latest_ms_priv_audit_entry.updating_user == hans.modifier
        assert latest_ms_priv_audit_entry.new_privileges == hans.metaspace_privileges
        assert modification_date_lb <= latest_ms_priv_audit_entry.ms_priv_chg_date <= modification_date_ub

    # the following lines are more testing AutoRollbackTransaction
    hans = User.get_existing_user_by_email(PGDB_TEST, hans_data["email_addr"])
    assert hans == None
    hans = User.get_existing_user_by_email(PGDB_TEST, hans_data["new_email_addr"])
    assert hans == None