Hi Stephen, Some nits to fix:
dja@connectitude ~/d/p/patchwork> pwclient git-am 725401 Applying patch #725401 using 'git am' Description: [v3,3/9] models: Modify behavior of Series.received_all Applying: models: Modify behavior of Series.received_all .git/rebase-apply/patch:75: trailing whitespace. -- .git/rebase-apply/patch:113: trailing whitespace. -- .git/rebase-apply/patch:169: trailing whitespace. -- .git/rebase-apply/patch:225: trailing whitespace. -- .git/rebase-apply/patch:263: trailing whitespace. -- warning: squelched 3 whitespace errors warning: 8 lines add whitespace errors. Happy for you to fix these on merge. Regards, Daniel Stephen Finucane <[email protected]> writes: > At the moment, Series.received_all is only true is the number of patches > received exactly matches the expected number of patches. However, there > are cases where there may in fact be more patches in the final series > than expected. For example, one could send patches with a subject of > 'PATCH 5/4' in-reply-to an original four patch series. The parser > handles this correctly, so the 'received_all' property should too. > > We still need to support patterns like '5/n', which are in use and do > not appear to be supported since 'c21b305'. This can be done at a later > stage. > > Signed-off-by: Stephen Finucane <[email protected]> > --- > .gitignore | 6 +- > patchwork/models.py | 2 +- > patchwork/tests/series/base-extra-patches.mbox | 182 > +++++++++++++++++++++++++ > patchwork/tests/series/base-incomplete.mbox | 70 ++++++++++ > patchwork/tests/test_series.py | 65 ++++++++- > 5 files changed, 320 insertions(+), 5 deletions(-) > create mode 100644 patchwork/tests/series/base-extra-patches.mbox > create mode 100644 patchwork/tests/series/base-incomplete.mbox > > diff --git a/.gitignore b/.gitignore > index fd52c8c..d295c3c 100644 > --- a/.gitignore > +++ b/.gitignore > @@ -15,9 +15,9 @@ TAGS > /series > > # patch files > -*.patch > -*.diff > -*.mbox > +/*.patch > +/*.diff > +/*.mbox > > # cscope files > cscope.* > diff --git a/patchwork/models.py b/patchwork/models.py > index 659414a..cf363f0 100644 > --- a/patchwork/models.py > +++ b/patchwork/models.py > @@ -579,7 +579,7 @@ class Series(models.Model): > > @property > def received_all(self): > - return self.total == self.received_total > + return self.total <= self.received_total > > def add_cover_letter(self, cover): > """Add a cover letter to the series. > diff --git a/patchwork/tests/series/base-extra-patches.mbox > b/patchwork/tests/series/base-extra-patches.mbox > new file mode 100644 > index 0000000..fd6ac1f > --- /dev/null > +++ b/patchwork/tests/series/base-extra-patches.mbox > @@ -0,0 +1,182 @@ > +From [email protected] Sun Sep 11 23:22:13 2016 > +Return-Path: <[email protected]> > +From: Stephen Finucane <[email protected]> > +To: [email protected] > +Subject: [PATCH 0/2] A sample series > +Date: Sun, 11 Sep 2016 23:22:02 +0100 > +Message-ID: <[email protected]> > +X-Mailer: git-send-email 2.7.4 > +MIME-Version: 1.0 > +Content-Type: text/plain > +Content-Length: 395 > +Lines: 18 > + > +From: Stephen Finucane <[email protected]> > + > +This is a sample cover letter. It doesn't really contribute to the > +conversation, but I added it anway. > + > +Stephen Finucane (2): > + test: Add some lorem ipsum > + test: Convert to Markdown > + > + test.md | 8 ++++++++ > + test.txt | 1 - > + 2 files changed, 8 insertions(+), 1 deletion(-) > + create mode 100644 test.md > + delete mode 100644 test.txt > + > +-- > +2.7.4 > + > + > +From [email protected] Sun Sep 11 23:22:13 2016 > +Return-Path: <[email protected]> > +From: Stephen Finucane <[email protected]> > +To: [email protected] > +Subject: [PATCH 1/2] test: Add some lorem ipsum > +Date: Sun, 11 Sep 2016 23:22:03 +0100 > +Message-ID: <[email protected]> > +X-Mailer: git-send-email 2.7.4 > +In-Reply-To: <[email protected]> > +References: <[email protected]> > +MIME-Version: 1.0 > +Content-Type: text/plain > +Content-Length: 670 > +Lines: 22 > + > +From: Stephen Finucane <[email protected]> > + > +--- > + test.txt | 7 +++++++ > + 1 file changed, 7 insertions(+) > + > +diff --git a/test.txt b/test.txt > +index f75ba05..a6c61c0 100644 > +--- a/test.txt > ++++ b/test.txt > +@@ -1 +1,8 @@ > + Hello, world. > ++ > ++Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras eget eleifend > ++augue. Nullam at metus venenatis, laoreet neque nec, convallis mauris. > ++Pellentesque aliquam at nisi et laoreet. Duis non nisl venenatis, rhoncus > risus > ++id, elementum felis. In hac habitasse platea dictumst. Nam sit amet maximus > ++eros. Nam quis ligula ut tortor egestas bibendum. Nunc sed purus sit amet > ++tellus commodo bibendum ut vel dolor. > +-- > +2.7.4 > + > + > +From [email protected] Sun Sep 11 23:22:16 2016 > +Return-Path: <[email protected]> > +From: Stephen Finucane <[email protected]> > +To: [email protected] > +Subject: [PATCH 2/2] test: Convert to Markdown > +Date: Sun, 11 Sep 2016 23:22:04 +0100 > +Message-ID: <[email protected]> > +X-Mailer: git-send-email 2.7.4 > +In-Reply-To: <[email protected]> > +References: <[email protected]> > +MIME-Version: 1.0 > +Content-Type: text/plain > +Content-Length: 1345 > +Lines: 40 > + > +From: Stephen Finucane <[email protected]> > + > +--- > + test.md | 8 ++++++++ > + test.txt | 8 -------- > + 2 files changed, 8 insertions(+), 8 deletions(-) > + create mode 100644 test.md > + delete mode 100644 test.txt > + > +diff --git a/test.md b/test.md > +new file mode 100644 > +index 0000000..e5ff90e > +--- /dev/null > ++++ b/test.md > +@@ -0,0 +1,8 @@ > ++# Hello, world > ++ > ++Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras eget eleifend > ++augue. Nullam at metus venenatis, laoreet neque nec, convallis mauris. > ++Pellentesque aliquam at nisi et laoreet. Duis non nisl venenatis, rhoncus > risus > ++id, elementum felis. In hac habitasse platea dictumst. Nam sit amet maximus > ++eros. Nam quis ligula ut tortor egestas bibendum. Nunc sed purus sit amet > ++tellus commodo bibendum ut vel dolor. > +diff --git a/test.txt b/test.txt > +deleted file mode 100644 > +index a6c61c0..0000000 > +--- a/test.txt > ++++ /dev/null > +@@ -1,8 +0,0 @@ > +-Hello, world. > +- > +-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras eget eleifend > +-augue. Nullam at metus venenatis, laoreet neque nec, convallis mauris. > +-Pellentesque aliquam at nisi et laoreet. Duis non nisl venenatis, rhoncus > risus > +-id, elementum felis. In hac habitasse platea dictumst. Nam sit amet maximus > +-eros. Nam quis ligula ut tortor egestas bibendum. Nunc sed purus sit amet > +-tellus commodo bibendum ut vel dolor. > +-- > +2.7.4 > + > + > +From [email protected] Sun Sep 11 23:22:16 2016 > +Return-Path: <[email protected]> > +From: Stephen Finucane <[email protected]> > +To: [email protected] > +Subject: [PATCH 3/2] test: Remove Markdown formatting > +Date: Sun, 11 Sep 2016 23:22:05 +0100 > +Message-ID: <[email protected]> > +X-Mailer: git-send-email 2.7.4 > +In-Reply-To: <[email protected]> > +References: <[email protected]> > +MIME-Version: 1.0 > +Content-Type: text/plain > +Content-Length: 1345 > +Lines: 40 > + > +From: Stephen Finucane <[email protected]> > + > +--- > + test.md | 8 -------- > + test.txt | 8 ++++++++ > + 2 files changed, 8 insertions(+), 8 deletions(-) > + create mode 100644 test.txt > + delete mode 100644 test.md > + > +diff --git a/test.txt b/test.txt > +new file mode 100644 > +index a6c61c0..0000000 > +--- /dev/null > ++++ a/test.txt > +@@ -1,8 +0,0 @@ > ++Hello, world. > ++ > ++Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras eget eleifend > ++augue. Nullam at metus venenatis, laoreet neque nec, convallis mauris. > ++Pellentesque aliquam at nisi et laoreet. Duis non nisl venenatis, rhoncus > risus > ++id, elementum felis. In hac habitasse platea dictumst. Nam sit amet maximus > ++eros. Nam quis ligula ut tortor egestas bibendum. Nunc sed purus sit amet > ++tellus commodo bibendum ut vel dolor. > +diff --git a/test.md b/test.md > +deleted file mode 100644 > +index 0000000..e5ff90e > +--- a/test.md > ++++ /dev/null > +@@ -0,0 +1,8 @@ > +-# Hello, world > +- > +-Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras eget eleifend > +-augue. Nullam at metus venenatis, laoreet neque nec, convallis mauris. > +-Pellentesque aliquam at nisi et laoreet. Duis non nisl venenatis, rhoncus > risus > +-id, elementum felis. In hac habitasse platea dictumst. Nam sit amet maximus > +-eros. Nam quis ligula ut tortor egestas bibendum. Nunc sed purus sit amet > +-tellus commodo bibendum ut vel dolor. > +-- > +2.7.4 > + > + > diff --git a/patchwork/tests/series/base-incomplete.mbox > b/patchwork/tests/series/base-incomplete.mbox > new file mode 100644 > index 0000000..d75bf5e > --- /dev/null > +++ b/patchwork/tests/series/base-incomplete.mbox > @@ -0,0 +1,70 @@ > +From [email protected] Sun Sep 11 23:22:13 2016 > +Return-Path: <[email protected]> > +From: Stephen Finucane <[email protected]> > +To: [email protected] > +Subject: [PATCH 0/2] A sample series > +Date: Sun, 11 Sep 2016 23:22:02 +0100 > +Message-ID: <[email protected]> > +X-Mailer: git-send-email 2.7.4 > +MIME-Version: 1.0 > +Content-Type: text/plain > +Content-Length: 395 > +Lines: 18 > + > +From: Stephen Finucane <[email protected]> > + > +This is a sample cover letter. It doesn't really contribute to the > +conversation, but I added it anway. > + > +Stephen Finucane (2): > + test: Add some lorem ipsum > + test: Convert to Markdown > + > + test.md | 8 ++++++++ > + test.txt | 1 - > + 2 files changed, 8 insertions(+), 1 deletion(-) > + create mode 100644 test.md > + delete mode 100644 test.txt > + > +-- > +2.7.4 > + > + > +From [email protected] Sun Sep 11 23:22:13 2016 > +Return-Path: <[email protected]> > +From: Stephen Finucane <[email protected]> > +To: [email protected] > +Subject: [PATCH 1/2] test: Add some lorem ipsum > +Date: Sun, 11 Sep 2016 23:22:03 +0100 > +Message-ID: <[email protected]> > +X-Mailer: git-send-email 2.7.4 > +In-Reply-To: <[email protected]> > +References: <[email protected]> > +MIME-Version: 1.0 > +Content-Type: text/plain > +Content-Length: 670 > +Lines: 22 > + > +From: Stephen Finucane <[email protected]> > + > +--- > + test.txt | 7 +++++++ > + 1 file changed, 7 insertions(+) > + > +diff --git a/test.txt b/test.txt > +index f75ba05..a6c61c0 100644 > +--- a/test.txt > ++++ b/test.txt > +@@ -1 +1,8 @@ > + Hello, world. > ++ > ++Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras eget eleifend > ++augue. Nullam at metus venenatis, laoreet neque nec, convallis mauris. > ++Pellentesque aliquam at nisi et laoreet. Duis non nisl venenatis, rhoncus > risus > ++id, elementum felis. In hac habitasse platea dictumst. Nam sit amet maximus > ++eros. Nam quis ligula ut tortor egestas bibendum. Nunc sed purus sit amet > ++tellus commodo bibendum ut vel dolor. > +-- > +2.7.4 > + > + > diff --git a/patchwork/tests/test_series.py b/patchwork/tests/test_series.py > index 7377d91..d2514c6 100644 > --- a/patchwork/tests/test_series.py > +++ b/patchwork/tests/test_series.py > @@ -369,12 +369,75 @@ class RevisedSeriesTest(_BaseTestCase): > - [PATCH v2 2/2] test: Convert to Markdown > > """ > - covers, patches, _ = self._parse_mbox( > + _, patches, _ = self._parse_mbox( > 'bugs-nocover.mbox', [0, 4, 0]) > > self.assertSerialized(patches, [2, 2]) > > > +class SeriesTotalTest(_BaseTestCase): > + > + def test_incomplete(self): > + """Series received with patches missing. > + > + Parse a series where not all patches were received. > + > + Input: > + > + - [PATCH 0/2] A sample series > + - [PATCH 1/2] test: Add some lorem ipsum > + """ > + covers, patches, _ = self._parse_mbox( > + 'base-incomplete.mbox', [1, 1, 0]) > + > + self.assertSerialized(patches, [1]) > + self.assertSerialized(covers, [1]) > + > + series = patches[0].latest_series > + self.assertFalse(series.received_all) > + > + def test_complete(self): > + """Series received with expected number of patches. > + > + Parse a series where all patches are received as expected. > + > + Input: > + > + - [PATCH 0/2] A sample series > + - [PATCH 1/2] test: Add some lorem ipsum > + - [PATCH 2/2] test: Convert to Markdown > + """ > + covers, patches, _ = self._parse_mbox( > + 'base-cover-letter.mbox', [1, 2, 0]) > + > + self.assertSerialized(covers, [1]) > + self.assertSerialized(patches, [2]) > + > + series = patches[0].latest_series > + self.assertTrue(series.received_all) > + > + def test_extra_patches(self): > + """Series received with additional patches. > + > + Parse a series where an additional patch was later sent. > + > + Input: > + > + - [PATCH 0/2] A sample series > + - [PATCH 1/2] test: Add some lorem ipsum > + - [PATCH 2/2] test: Convert to Markdown > + - [PATCH 3/n] test: Remove Markdown formatting > + """ > + covers, patches, _ = self._parse_mbox( > + 'base-extra-patches.mbox', [1, 3, 0]) > + > + self.assertSerialized(covers, [1]) > + self.assertSerialized(patches, [3]) > + > + series = patches[0].latest_series > + self.assertTrue(series.received_all) > + > + > class SeriesNameTestCase(TestCase): > > def setUp(self): > -- > 2.9.3 > > _______________________________________________ > Patchwork mailing list > [email protected] > https://lists.ozlabs.org/listinfo/patchwork _______________________________________________ Patchwork mailing list [email protected] https://lists.ozlabs.org/listinfo/patchwork
