From 4351d921a5d25f1aeccb03a8667cc1f4176af45d Mon Sep 17 00:00:00 2001 From: Dominik Wombacher Date: Jan 22 2023 01:34:44 +0000 Subject: fix: strip() without testing if var is not None Usage of 'strip()' without testing if var exist / is not None caused "AttributeError: 'NoneType' object has no attribute 'strip'" in various tests --- diff --git a/pagure/api/fork.py b/pagure/api/fork.py index dc6dceb..e1d28a0 100644 --- a/pagure/api/fork.py +++ b/pagure/api/fork.py @@ -1128,7 +1128,7 @@ def api_pull_request_add_flag(repo, requestid, username=None, namespace=None): form = pagure.forms.AddPullRequestFlagFormV1(meta={'csrf': False}) if form.validate_on_submit(): username = form.username.data - percent = form.percent.data.strip() or None + percent = form.percent.data.strip() if form.percent.data else None comment = form.comment.data.strip() url = form.url.data.strip() uid = form.uid.data.strip() if form.uid.data else None diff --git a/pagure/api/project.py b/pagure/api/project.py index 42884bc..d0d316d 100644 --- a/pagure/api/project.py +++ b/pagure/api/project.py @@ -2436,7 +2436,7 @@ def api_commit_add_flag(repo, commit_hash, username=None, namespace=None): form = pagure.forms.AddPullRequestFlagForm(meta={'csrf': False}) if form.validate_on_submit(): username = form.username.data - percent = form.percent.data.strip() or None + percent = form.percent.data.strip() if form.percent.data else None comment = form.comment.data.strip() url = form.url.data.strip() uid = form.uid.data.strip() if form.uid.data else None diff --git a/pagure/ui/fork.py b/pagure/ui/fork.py index 53c707f..3125d0f 100644 --- a/pagure/ui/fork.py +++ b/pagure/ui/fork.py @@ -556,9 +556,9 @@ def request_pull_edit(repo, requestid, username=None, namespace=None): form = pagure.forms.RequestPullEditForm(branches=flask.g.branches) if form.validate_on_submit(): - request.title = form.title.data.strip() - request.initial_comment = form.initial_comment.data.strip() - request.branch = form.branch_to.data.strip() + request.title = form.title.data.strip() if form.title.data else None + request.initial_comment = form.initial_comment.data.strip() if form.initial_comment.data else None + request.branch = form.branch_to.data.strip() if form.branch_to.data else None if flask.g.fas_user.username == request.user.username: request.allow_rebase = form.allow_rebase.data flask.g.session.add(request) @@ -1721,7 +1721,7 @@ def new_request_pull( if orig_commit: orig_commit = orig_commit.oid.hex - initial_comment = form.initial_comment.data.strip() or None + initial_comment = form.initial_comment.data.strip() if form.initial_comment.data else None commit_start = commit_stop = None if diff_commits: commit_stop = diff_commits[0].oid.hex @@ -1887,9 +1887,9 @@ def new_remote_request_pull(repo, username=None, namespace=None): except Exception as err: flask.abort(500, description=err) - branch_from = form.branch_from.data.strip() - branch_to = form.branch_to.data.strip() - remote_git = form.git_repo.data.strip() + branch_from = form.branch_from.data.strip() if form.branch_from.data else None + branch_to = form.branch_to.data.strip() if form.branch_to.data else None + remote_git = form.git_repo.data.strip() if form.git_repo.data else None repopath = pagure.utils.get_remote_repo_path(remote_git, branch_from) if not repopath: @@ -1969,7 +1969,7 @@ def new_remote_request_pull(repo, username=None, namespace=None): user=flask.g.fas_user.username, ) - if form.initial_comment.data.strip() != "": + if form.initial_comment.data and form.initial_comment.data.strip() != "": pagure.lib.query.add_pull_request_comment( flask.g.session, request=request, @@ -2027,7 +2027,7 @@ def new_remote_request_pull(repo, username=None, namespace=None): except pygit2.GitError: branch_to = "master" else: - branch_to = form.branch_to.data.strip() + branch_to = form.branch_to.data.strip() if form.branch_to.data else None return flask.render_template( "remote_pull_request.html", diff --git a/pagure/ui/issues.py b/pagure/ui/issues.py index d46f6ac..4e9853c 100644 --- a/pagure/ui/issues.py +++ b/pagure/ui/issues.py @@ -207,7 +207,7 @@ def update_issue(repo, issueid, username=None, namespace=None): # Check if the optional field is filled if form.assignee.data: assignee = form.assignee.data.strip() - new_status = form.status.data.strip() or None + new_status = form.status.data.strip() if form.status.data else None close_status = form.close_status.data or None if close_status not in repo.close_status: close_status = None @@ -225,7 +225,7 @@ def update_issue(repo, issueid, username=None, namespace=None): new_milestone = None try: if repo.milestones: - new_milestone = form.milestone.data.strip() or None + new_milestone = form.milestone.data.strip() if form.milestone.data else None except AttributeError: pass diff --git a/pagure/ui/repo.py b/pagure/ui/repo.py index fcb7f4a..e0a9ca2 100644 --- a/pagure/ui/repo.py +++ b/pagure/ui/repo.py @@ -2374,7 +2374,7 @@ def add_token(repo, username=None, namespace=None): pagure.lib.query.add_token_to_user( flask.g.session, repo, - description=form.description.data.strip() or None, + description=form.description.data.strip() if form.description.data else None, acls=form.acls.data, username=flask.g.fas_user.username, expiration_date=form.expiration_date.data,