From nobody Fri May 3 14:45:52 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=patchew-devel-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=patchew-devel-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1525723036061230.8705955471538; Mon, 7 May 2018 12:57:16 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D66395D5ED; Mon, 7 May 2018 19:57:14 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C373916BE6; Mon, 7 May 2018 19:57:14 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 84BDF4CA96; Mon, 7 May 2018 19:57:14 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w47JuJMl003475 for ; Mon, 7 May 2018 15:56:19 -0400 Received: by smtp.corp.redhat.com (Postfix) id 9C6CB30B4989; Mon, 7 May 2018 19:56:19 +0000 (UTC) Received: from mx1.redhat.com (ext-mx20.extmail.prod.ext.phx2.redhat.com [10.5.110.49]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9494630B4988 for ; Mon, 7 May 2018 19:56:17 +0000 (UTC) Received: from mail-pl0-f41.google.com (mail-pl0-f41.google.com [209.85.160.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 07C9130B8F8B for ; Mon, 7 May 2018 19:56:06 +0000 (UTC) Received: by mail-pl0-f41.google.com with SMTP id w12-v6so590671plp.0 for ; Mon, 07 May 2018 12:56:05 -0700 (PDT) Received: from localhost.localdomain ([112.196.135.149]) by smtp.gmail.com with ESMTPSA id w184-v6sm34830943pgb.20.2018.05.07.12.56.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 07 May 2018 12:56:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=5oQ5FqxauqW+jOSIljeTN3IGOFAo5UYMrfgbdy3fHlQ=; b=C5ysqYZCUrvfxM75C2B+wQ1w/Xv5dksWD9CFkrJHBHtEW3uMaoSIS2Yjj3UAVxDEZc AjQhIIDgtArtQBhLpor57uq3FVn3m/m11F1gyZC5zg3WExUyX6LkL+GmKUlPbkmkmqie U1H0AC8QvC//AYz8mNXRdOdyMGOmBkkk3RlPwz/d06doAx20MGh9cXyzTmKrfN4i37A0 4mtYBz9rE0ajK6bhOqAzGGiz03rQOPdgmL6S8itgAemJU0CpOJLcvJXN6JZDOSJWheQm yBFHyb9sxH1MOtoEKc/7C3JSmZWkKsHmpH2365rstyTS6LTVQl7/JeXj/MVk2GSLl/lq T1zA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=5oQ5FqxauqW+jOSIljeTN3IGOFAo5UYMrfgbdy3fHlQ=; b=NRS22M8vKeKgG0adhV4EKb1/Rr4M02Cpa5e/zQsO7tOxNraUjgadU6fau4Ngk0mMmZ 8MwRv6RVZqoZFzJUY7ueQJsHOK19xsA1QPyH7IR42PVcDKKwkfbDva452qKIH34bJg5W XNNYnNslXWuZvurJv+SVa54Uleu886gQO9tNhXEGeYzRsTyHZKLUFYSsDSuEhIuc5UIQ tk72vdDbhwdOyENOn8DukOwW1lVeqmIYEEwOhsYs7f/Ud9JtWHV7xgfjw29wge4LfzcZ XiSGCksthgChQUvQqPhcsIPkDXrEERT7olURgdwH6Z44ZWUmf+/3sXE296X2qrUwPj55 6j7Q== X-Gm-Message-State: ALQs6tB19hUAg+AgVCwJsE8MjVoxsBC2XZ+3+gQwQ+7YD+5dq0yuohhi bfLa5uW30h1EF6KYe6xqpFHD0Q== X-Google-Smtp-Source: AB8JxZrvrSoCT8DfJvYKHLMNbwcv6u/nT2QBEgphpNGjX2ueozravkGhkcQ8GB/Pq9yW9J4ZknQJkA== X-Received: by 2002:a17:902:a711:: with SMTP id w17-v6mr38806855plq.292.1525722964698; Mon, 07 May 2018 12:56:04 -0700 (PDT) From: Shubham Jain To: patchew-devel@redhat.com Date: Tue, 8 May 2018 01:25:53 +0530 Message-Id: <20180507195553.51784-1-shubhamjain7495@gmail.com> MIME-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); Mon, 07 May 2018 19:56:06 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.49]); Mon, 07 May 2018 19:56:06 +0000 (UTC) for IP:'209.85.160.41' DOMAIN:'mail-pl0-f41.google.com' HELO:'mail-pl0-f41.google.com' FROM:'shubhamjain7495@gmail.com' RCPT:'' X-RedHat-Spam-Score: 1.561 * (DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, NML_ADSP_CUSTOM_MED, SPF_PASS, T_DKIM_INVALID) 209.85.160.41 mail-pl0-f41.google.com 209.85.160.41 mail-pl0-f41.google.com X-Scanned-By: MIMEDefang 2.84 on 10.5.110.49 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.24 X-loop: patchew-devel@redhat.com Cc: Shubham Jain Subject: [Patchew-devel] [PATCH v3] rest: POST for message endpoint X-BeenThere: patchew-devel@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Patchew development and discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: patchew-devel-bounces@redhat.com Errors-To: patchew-devel-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Mon, 07 May 2018 19:57:15 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 This commit allows to create/POST message from browser - Add "create" method to MessageManager so that it calls save_mbox() - Add getter and setter for mbox - Rename the existing "mbox" field to e.g. "mbox_blob" - Fix nested writable serializer issue Message-Id: <20180505070956.6665-1-shubhamjain7495@gmail.com> --- api/models.py | 40 +++++++++++--- api/rest.py | 20 ++++--- tests/test_rest.py | 154 +++++++++++++++++++++++++++++++++++++++++++++++++= +++- 3 files changed, 197 insertions(+), 17 deletions(-) diff --git a/api/models.py b/api/models.py index 504f2c7..a97c217 100644 --- a/api/models.py +++ b/api/models.py @@ -247,6 +247,25 @@ class MessageManager(models.Manager): self.delete_subthread(r) msg.delete() =20 + def create(self,project, **validated_data): + mbox =3D validated_data.pop('mbox') + m =3D MboxMessage(mbox) + msg =3D Message(**validated_data) + if 'in_reply_to' not in validated_data: + msg.in_reply_to =3D m.get_in_reply_to() or "" + msg.stripped_subject =3D m.get_subject(strip_tags=3DTrue) + msg.version =3D m.get_version() + msg.prefixes =3D m.get_prefixes() + msg.is_series_head =3D m.is_series_head() + msg.is_patch =3D m.is_patch() + msg.patch_num =3D m.get_num()[0] + msg.project =3D project + msg.mbox =3D mbox + msg.save_mbox(mbox) + msg.save() + emit_event("MessageAdded", message=3Dmsg) + return msg + def add_message_from_mbox(self, mbox, user, project_name=3DNone): =20 def find_message_projects(m): @@ -321,20 +340,25 @@ class Message(models.Model): =20 objects =3D MessageManager() =20 - def save_mbox(self, mbox): - save_blob(mbox, self.message_id) + def save_mbox(self, mbox_blob): + save_blob(mbox_blob, self.message_id) =20 def get_mbox_obj(self): self.get_mbox() return self._mbox_obj =20 def get_mbox(self): - if hasattr(self, "mbox"): - return self.mbox - self.mbox =3D load_blob(self.message_id) - self._mbox_obj =3D MboxMessage(self.mbox) - return self.mbox - + if hasattr(self, "mbox_blob"): + return self.mbox_blob + self.mbox_blob =3D load_blob(self.message_id) + self._mbox_obj =3D MboxMessage(self.mbox_blob) + return self.mbox_blob + =20 + mbox =3D property(get_mbox) + @mbox.setter + def mbox(self,value): + self.mbox_blob =3D value + =20 def get_num(self): assert self.is_patch or self.is_series_head cur, total =3D 1, 1 diff --git a/api/rest.py b/api/rest.py index fc10b46..73fe2e6 100644 --- a/api/rest.py +++ b/api/rest.py @@ -140,9 +140,13 @@ class BaseMessageSerializer(serializers.ModelSerialize= r): fields =3D ('resource_uri', 'message_id', 'subject', 'date', 'send= er', 'recipients') =20 resource_uri =3D HyperlinkedMessageField(view_name=3D'messages-detail') - recipients =3D AddressSerializer(many=3DTrue) sender =3D AddressSerializer() + =20 + def create(self, validated_data): + validated_data['recipients'] =3D self.fields['recipients'].create(= validated_data['recipients']) + validated_data['sender'] =3D self.fields['sender'].create(validate= d_data['sender']) + return Message.objects.create(project=3Dself.context['project'], *= *validated_data) =20 # a message_id is *not* unique, so we can only list class BaseMessageViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): @@ -156,7 +160,11 @@ class BaseMessageViewSet(mixins.ListModelMixin, viewse= ts.GenericViewSet): class ProjectMessagesViewSetMixin(mixins.RetrieveModelMixin): def get_queryset(self): return self.queryset.filter(project=3Dself.kwargs['projects_pk']) - + def get_serializer_context(self): + try: + return {'project': Project.objects.get(id=3Dself.kwargs['proje= cts_pk']), 'request': self.request} + except:=20 + return Http404 # Series =20 class ReplySerializer(BaseMessageSerializer): @@ -287,10 +295,7 @@ class MessageSerializer(BaseMessageSerializer): class Meta: model =3D Message fields =3D BaseMessageSerializer.Meta.fields + ('mbox', ) - - def get_mbox(self, obj): - return obj.get_mbox() - mbox =3D SerializerMethodField() + mbox =3D CharField() =20 def get_fields(self): fields =3D super(MessageSerializer, self).get_fields() @@ -312,9 +317,8 @@ class StaticTextRenderer(renderers.BaseRenderer): return data =20 class MessagesViewSet(ProjectMessagesViewSetMixin, - BaseMessageViewSet): + BaseMessageViewSet, mixins.CreateModelMixin): serializer_class =3D MessageSerializer - @detail_route(renderer_classes=3D[StaticTextRenderer]) def mbox(self, request, *args, **kwargs): message =3D self.get_object() diff --git a/tests/test_rest.py b/tests/test_rest.py index 21bc2b9..c8024e2 100755 --- a/tests/test_rest.py +++ b/tests/test_rest.py @@ -18,7 +18,7 @@ from patchewtest import PatchewTestCase, main from api.models import Message from api.rest import AddressSerializer from collections import OrderedDict - +import json class RestTest(PatchewTestCase): def setUp(self): self.create_superuser() @@ -256,6 +256,158 @@ class RestTest(PatchewTestCase): self.assertEqual(resp_after.status_code, 404) self.assertEqual(resp_reply_after.status_code, 404) =20 + def test_create_message(self): + data =3D { + "message_id": "20171023201055.21973-11-andrew.smirnov@gmai= l.com", + "subject": "[Qemu-devel] [PATCH v2 10/27] imx_fec: Reserve= full 4K " + "page for the register file", + "date": "2017-10-23T20:10:38", + "sender": { + "name": "Andrey Smirnov", + "address": "andrew.smirnov@gmail.com" + }, + "recipients": [ + { + "address": "qemu-arm@nongnu.org" + }, + { + "name": "Peter Maydell", + "address": "peter.maydell@linaro.org" + }, + { + "name": "Andrey Smirnov", + "address": "andrew.smirnov@gmail.com" + }, + { + "name": "Jason Wang", + "address": "jasowang@redhat.com" + }, + { + "name": "Philippe Mathieu-Daud=C3=A9", + "address": "f4bug@amsat.org" + }, + { + "address": "qemu-devel@nongnu.org" + }, + { + "address": "yurovsky@gmail.com" + } + ], + "mbox": "From andrew.smirnov@gmail.com Mon Oct 23 20:10:38= 2017\nDelivered" + "-To: importer@patchew.org\nReceived-SPF: temperro= r (zoho.com: Err" + "or in retrieving data from DNS) client-ip=3D208.1= 18.235.17; envelop" + "e-from=3Dqemu-devel-bounces+importer=3Dpatchew.or= g@nongnu.org; helo=3Dl" + "ists.gnu.org;\nAuthentication-Results: mx.zohomai= l.com;\n\tdkim=3Df" + "ail;\n\tspf=3Dtemperror (zoho.com: Error in retri= eving data from DN" + "S) smtp.mailfrom=3Dqemu-devel-bounces+importer= =3Dpatchew.org@nongnu." + "org\nReturn-Path: \nReceived: from lists.gnu.org (208.118.235.= 17 [208.118.235." + "17]) by mx.zohomail.com\n\twith SMTPS id 15087900= 23478635.2925706" + "919272; Mon, 23 Oct 2017 13:20:23 -0700 (PDT)\nRe= ceived: from loc" + "alhost ([::1]:40414 helo=3Dlists.gnu.org)\n\tby l= ists.gnu.org with " + "esmtp (Exim 4.71)\n\t(envelope-from )\n\tid 1e6jCo-0007Cr-Ed\n= \tfor importer@p" + "atchew.org; Mon, 23 Oct 2017 16:20:14 -0400\nRece= ived: from eggs." + "gnu.org ([2001:4830:134:3::10]:46254)\n\tby lists= .gnu.org with es" + "mtp (Exim 4.71)\n\t(envelope-from ) id " + "1e6j4M-0000Ia-AF\n\tfor qemu-devel@nongnu.org; Mo= n, 23 Oct 2017 1" + "6:11:32 -0400\nReceived: from Debian-exim by eggs= .gnu.org with sp" + "am-scanned (Exim 4.71)\n\t(envelope-from ) id 1e6j4L-0002WU-ES\n\tfor qemu-devel@nongnu.= org; Mon, 23 Oct" + " 2017 16:11:30 -0400\nReceived: from mail-pf0-x24= 1.google.com ([2" + "607:f8b0:400e:c00::241]:47361)\n\tby eggs.gnu.org= with esmtps (TL" + "S1.0:RSA_AES_128_CBC_SHA1:16)\n\t(Exim 4.71) (env= elope-from )\n\tid 1e6j4J-0002VQ-5h; Mo= n, 23 Oct 2017 1" + "6:11:27 -0400\nReceived: by mail-pf0-x241.google.= com with SMTP id" + " z11so17896780pfk.4;\n\tMon, 23 Oct 2017 13:11:27= -0700 (PDT)\nRe" + "ceived: from squirtle.westlake.spaceflightindustr= ies.com ([173.22" + "6.206.194])\n\tby smtp.gmail.com with ESMTPSA id\= n\tj1sm15181623p" + "fj.108.2017.10.23.13.11.24\n\t(version=3DTLS1_2 c= ipher=3DECDHE-RSA-CH" + "ACHA20-POLY1305 bits=3D256/256);\n\tMon, 23 Oct 2= 017 13:11:25 -0700" + " (PDT)\nDKIM-Signature: v=3D1; a=3Drsa-sha256; c= =3Drelaxed/relaxed; d=3Dg" + "mail.com; s=3D20161025;\n\th=3Dfrom:to:cc:subject= :date:message-id:in-" + "reply-to:references\n\t:mime-version:content-tran= sfer-encoding;\n" + "\tbh=3DzmFol33kPLVHCkj7Ro+lVg1LTAQod/G9dNqJXtckib= I=3D;\n\tb=3DD49+KCtse" + "bdshdA2kxqNqCWLEOTSRXI61CbfBrS3YYbGspt/3vTIRCLSKN= hICr2UOc\n\t7BhL" + "XRtMKhn2gomHPqqSHOSp+hB5XtMmBNpBpkQyXMHoGkgmjg0II= F02Vzn4i2QzP8C9" + "\n\t0SDZb6VYnz70J5HY0KZwVfQ+Rc5qgJEfcTHzuzZ4qHcbX= xPHYCGYo1yDG6bEU" + "LNp2sRB\n\tGekoCKine5V1Uc+8aKmIeQA3zTXj2BLYqIQFi3= UdiEemj94Gs3UFkE" + "kV3kTtCBwBVYep\n\tCvtbjBMI4Kb2Rcyb7taNS1PwjoXo4nz= yPqSftf5CtxE3FYQ" + "6pSHkU8H1cqi4os4RgACQ\n\t6rrA=3D=3D\nX-Google-DKI= M-Signature: v=3D1; a=3D" + "rsa-sha256; c=3Drelaxed/relaxed;\n\td=3D1e100.net= ; s=3D20161025;\n\th=3Dx" + "-gm-message-state:from:to:cc:subject:date:message= -id:in-reply-to" + "\n\t:references:mime-version:content-transfer-enc= oding;\n\tbh=3DzmF" + "ol33kPLVHCkj7Ro+lVg1LTAQod/G9dNqJXtckibI=3D;\n\tb= =3DkG94Z4+JpBMpVNtWI" + "ASASHAaqcxeUgqF149vlfmPjsUsUZoE69zK/Xq8lz25p+TskP= \n\tu+sFtsuT//gI" + "M/gFEeFYPBUEECFh+cSu6vYqjvy7W+o1dt0CkQS0K4sG2a6PD= eXTc7Dw\n\tYOmEE" + "gzEW+JtEp27yE8L5Yiur7k9cMnq6AGsLtrNa4leHN8KfnBLpZ= DJ1w2BTVAST/Mt\n" + "\tp5OmcBALM2s2PfVxV2AqFIC03+BUkFo78Yl0dJkT95uUWQv= XOrYnhrJGikBOpxf" + "e2GEl\n\tdX/N0knNvw1ILQigiiD7mTg2pWBXXdi9ncxWFbWG= av3NFgMuMj9Le7dh" + "Merg+f0Pqzqq\n\tuMRw=3D=3D\nX-Gm-Message-State: A= MCzsaVtdnaUNbjj5huOS" + "I8ibhSVAiVnF57PiIS4oVle1IVoBcH6i/W4\n\tsAtvFi/nF5= bYIYfQxgZMU93rvm" + "Mn\nX-Google-Smtp-Source: ABhQp+Tw1GtSPaSw51tZkI3= AfiuyluStPI8C5/3" + "esBqFkirOMfsjtlRNoBcr8lgEf/55RwhQLiI5mQ=3D=3D\nX-= Received: by 10.98.6" + "5.218 with SMTP id g87mr14269292pfd.105.150878948= 6104;\n\tMon, 23" + " Oct 2017 13:11:26 -0700 (PDT)\nFrom: Andrey Smir= nov \nTo: qemu-arm@nongnu.org\nDate: Mo= n, 23 Oct 2017 1" + "3:10:38 -0700\nMessage-Id: <20171023201055.21973-= 11-andrew.smirno" + "v@gmail.com>\nX-Mailer: git-send-email 2.13.5\nIn= -Reply-To: <2017" + "1023201055.21973-1-andrew.smirnov@gmail.com>\nRef= erences: <201710" + "23201055.21973-1-andrew.smirnov@gmail.com>\nMIME-= Version: 1.0\nCo" + "ntent-Type: text/plain; charset=3D\"utf-8\"\nCont= ent-Transfer-Encod" + "ing: base64\nX-detected-operating-system: by eggs= .gnu.org: Genre " + "and OS details not\n\trecognized.\nX-Received-Fro= m: 2607:f8b0:400" + "e:c00::241\nSubject: [Qemu-devel] [PATCH v2 10/27= ] imx_fec: Reser" + "ve full 4K page for the\n register file\nX-BeenTh= ere: qemu-devel@" + "nongnu.org\nX-Mailman-Version: 2.1.21\nPrecedence= : list\nList-Id:" + " \nList-Unsubscribe: ,\n\t\nList-Archive: <= http://lists.nongn" + "u.org/archive/html/qemu-devel/>\nList-Post: \nList-Help: \nList-Subscribe: ,\n\t\nCc: Peter Maydell ,\n\tAnd" + "rey Smirnov ,\n\tJason = Wang ,\n\t=3D?UTF-8?q?Philippe=3D20Mathieu-D= aud=3DC3=3DA9?=3D ,\n\tqemu-devel@nongnu.org, yurovsky@gma= il.com\nErrors-T" + "o: qemu-devel-bounces+importer=3Dpatchew.org@nong= nu.org\nSender: \"" + "Qemu-devel\" " + "\nX-ZohoMail-DKIM: fail (Header signature does no= t verify)\nX-Zoh" + "oMail: RDKM_2 RSF_6 Z_629925259 SPT_0\n\nU29tZS= BpLk1YIFNvQ3MgKG" + "UuZy4gaS5NWDcpIGhhdmUgRkVDIHJlZ2lzdGVycyBnb2luZyB= hcyBm\nYXIgYXMgb" + "2Zmc2V0CjB4NjE0LCBzbyB0byBhdm9pZCBnZXR0aW5nIGFib3= J0cyB3aGVuIGFjY2" + "Vz\nc2luZyB0aG9zZSBvbiBRRU1VLCBleHRlbmQKdGhlIHJlZ= 2lzdGVyIGZpbGUgd" + "G8gY292ZXIgNEtC\nIG9mIGFkZHJlc3Mgc3BhY2UgaW5zdGVh= ZCBvZiBqdXN0IDFL" + "LgoKQ2M6IFBldGVyIE1heWRlbGwg\nPHBldGVyLm1heWRlbGx= AbGluYXJvLm9yZz4" + "KQ2M6IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhh\ndC5jb2= 0+CkNjOiBQaGlsaX" + "BwZSBNYXRoaWV1LURhdWTDqSA8ZjRidWdAYW1zYXQub3JnPgp= DYzog\ncWVtdS1kZ" + "XZlbEBub25nbnUub3JnCkNjOiBxZW11LWFybUBub25nbnUub3= JnCkNjOiB5dXJvdn" + "Nr\neUBnbWFpbC5jb20KU2lnbmVkLW9mZi1ieTogQW5kcmV5I= FNtaXJub3YgPGFuZ" + "HJldy5zbWlybm92\nQGdtYWlsLmNvbT4KLS0tCiBody9uZXQv= aW14X2ZlYy5jIHwg" + "MiArLQogMSBmaWxlIGNoYW5nZWQs\nIDEgaW5zZXJ0aW9uKCs= pLCAxIGRlbGV0aW9" + "uKC0pCgpkaWZmIC0tZ2l0IGEvaHcvbmV0L2lteF9m\nZWMuYy= BiL2h3L25ldC9pbX" + "hfZmVjLmMKaW5kZXggNDhkMDEyY2FkNi4uZTIzNmJjOTMzYyA= xMDA2\nNDQKLS0tI" + "GEvaHcvbmV0L2lteF9mZWMuYworKysgYi9ody9uZXQvaW14X2= ZlYy5jCkBAIC0xMj" + "Uy\nLDcgKzEyNTIsNyBAQCBzdGF0aWMgdm9pZCBpbXhfZXRoX= 3JlYWxpemUoRGV2a" + "WNlU3RhdGUgKmRl\ndiwgRXJyb3IgKiplcnJwKQogICAgIFN5= c0J1c0RldmljZSAq" + "c2JkID0gU1lTX0JVU19ERVZJQ0Uo\nZGV2KTsKIAogICAgIG1= lbW9yeV9yZWdpb25" + "faW5pdF9pbygmcy0+aW9tZW0sIE9CSkVDVChkZXYp\nLCAmaW= 14X2V0aF9vcHMsIH" + "MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFRZUEVfSU1= YX0ZF\nQywgMHg0M" + "DApOworICAgICAgICAgICAgICAgICAgICAgICAgICBUWVBFX0= lNWF9GRUMsIDB4MT" + "Aw\nMCk7CiAgICAgc3lzYnVzX2luaXRfbW1pbyhzYmQsICZzL= T5pb21lbSk7CiAgI" + "CAgc3lzYnVzX2lu\naXRfaXJxKHNiZCwgJnMtPmlycVswXSk7= CiAgICAgc3lzYnVz" + "X2luaXRfaXJxKHNiZCwgJnMtPmly\ncVsxXSk7Ci0tIAoyLjE= zLjUKCgo=3D\n\n" + } + =20 + resp =3D self.api_client.post(self.PROJECT_BASE + "messages/", jso= n.dumps(data), content_type=3D'application/json') + self.assertEqual(resp.status_code,201) + resp_get =3D self.api_client.get(self.PROJECT_BASE + "messages/201= 71023201055.21973-11-andrew.smirnov@gmail.com/") + self.assertEqual(resp_get.status_code,200) + self.assertEqual(resp.data['subject'],"[Qemu-devel] [PATCH v2 10/2= 7] imx_fec: Reserve full 4K " + "page for the register file") + + def test_message(self): series =3D self.apply_and_retrieve('0001-simple-patch.mbox.gz', self.p.id, '20160628014747.20971-= 1-famz@redhat.com') --=20 2.14.3 (Apple Git-98) _______________________________________________ Patchew-devel mailing list Patchew-devel@redhat.com https://www.redhat.com/mailman/listinfo/patchew-devel