[buildinfo.debian.net] 09/35: Avoid DRY violatioin in creating a Submission

Chris Lamb chris at chris-lamb.co.uk
Thu Nov 3 19:02:24 UTC 2016


This is an automated email from the git hooks/post-receive script.

lamby pushed a commit to branch master
in repository buildinfo.debian.net.

commit 9c1165628d0da6e20a267736a9c71cc64558587f
Author: Chris Lamb <lamby at debian.org>
Date:   Sun Oct 23 09:45:08 2016 +0200

    Avoid DRY violatioin in creating a Submission
    
    Signed-off-by: Chris Lamb <lamby at debian.org>
---
 bidb/api/utils.py | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/bidb/api/utils.py b/bidb/api/utils.py
index 1160af6..5aa8f3d 100644
--- a/bidb/api/utils.py
+++ b/bidb/api/utils.py
@@ -36,15 +36,17 @@ def parse_submission(request):
         except (KeyError, IndexError):
             raise InvalidSubmission("Could not determine GPG uid")
 
-    sha1 = hashlib.sha1(raw_text_gpg_stripped.encode('utf-8')).hexdigest()
-    try:
-        submission = Buildinfo.objects.get(sha1=sha1).submissions.create(
+    def create_submission(buildinfo):
+        return buildinfo.submissions.create(
             uid=uid,
             node=request.GET.get('node', ''),
             raw_text=raw_text,
         )
 
-        return submission, False
+    # If this .buildinfo already exists, attach a new Submission instance
+    sha1 = hashlib.sha1(raw_text_gpg_stripped.encode('utf-8')).hexdigest()
+    try:
+        return create_submission(Buildinfo.objects.get(sha1=sha1)), False
     except Buildinfo.DoesNotExist:
         pass
 
@@ -140,8 +142,4 @@ def parse_submission(request):
             version=m.group('version'),
         )
 
-    return buildinfo.submissions.create(
-        uid=uid,
-        node=request.GET.get('node', ''),
-        raw_text=raw_text,
-    ), True
+    return create_submission(buildinfo), True

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/buildinfo.debian.net.git



More information about the Reproducible-commits mailing list