Stephen Finucane <[email protected]> writes: > This includes unit tests to validate correct behavior and prevent > regressions. > > Signed-off-by: Stephen Finucane <[email protected]> > --- > v2: > - Move code to views/utils instead > - Break out other refactoring work Thanks!
Reviewed-by: Daniel Axtens <[email protected]> Regards, Daniel > --- > patchwork/tests/test_bundles.py | 20 ++++++++++++++++++++ > patchwork/views/bundle.py | 5 ++--- > patchwork/views/utils.py | 12 ++++++++++++ > 3 files changed, 34 insertions(+), 3 deletions(-) > > diff --git a/patchwork/tests/test_bundles.py b/patchwork/tests/test_bundles.py > index c185110..2e34174 100644 > --- a/patchwork/tests/test_bundles.py > +++ b/patchwork/tests/test_bundles.py > @@ -42,6 +42,11 @@ def bundle_url(bundle): > 'username': bundle.owner.username, 'bundlename': bundle.name}) > > > +def bundle_mbox_url(bundle): > + return reverse('bundle-mbox', kwargs={ > + 'username': bundle.owner.username, 'bundlename': bundle.name}) > + > + > class BundleListTest(TestCase): > > def setUp(self): > @@ -120,6 +125,21 @@ class BundleViewTest(BundleTestBase): > pos = next_pos > > > +class BundleMboxTest(BundleTestBase): > + > + def test_empty_bundle(self): > + response = self.client.get(bundle_mbox_url(self.bundle)) > + self.assertEqual(response.status_code, 200) > + self.assertEqual(response.content, '') > + > + def test_non_empty_bundle(self): > + self.bundle.append_patch(self.patches[0]) > + > + response = self.client.get(bundle_mbox_url(self.bundle)) > + self.assertEqual(response.status_code, 200) > + self.assertNotEqual(response.content, '') > + > + > class BundleUpdateTest(BundleTestBase): > > def test_no_action(self): > diff --git a/patchwork/views/bundle.py b/patchwork/views/bundle.py > index 53e1b21..ef82c98 100644 > --- a/patchwork/views/bundle.py > +++ b/patchwork/views/bundle.py > @@ -32,7 +32,7 @@ from patchwork.models import Bundle > from patchwork.models import BundlePatch > from patchwork.models import Project > from patchwork.views import generic_list > -from patchwork.views.utils import patch_to_mbox > +from patchwork.views.utils import bundle_to_mbox > > > @login_required > @@ -140,8 +140,7 @@ def bundle_mbox(request, username, bundlename): > response = HttpResponse(content_type='text/plain') > response['Content-Disposition'] = \ > 'attachment; filename=bundle-%d-%s.mbox' % (bundle.id, bundle.name) > - response.write('\n'.join( > - [patch_to_mbox(p) for p in bundle.ordered_patches()])) > + response.write(bundle_to_mbox(bundle)) > > return response > > diff --git a/patchwork/views/utils.py b/patchwork/views/utils.py > index c998647..900480b 100644 > --- a/patchwork/views/utils.py > +++ b/patchwork/views/utils.py > @@ -104,3 +104,15 @@ def patch_to_mbox(patch): > mail = mail.as_string(True) > > return mail > + > + > +def bundle_to_mbox(bundle): > + """Get an mbox representation of a bundle. > + > + Arguments: > + patch: The Bundle object to convert. > + > + Returns: > + A string for the mbox file. > + """ > + return '\n'.join([patch_to_mbox(p) for p in bundle.ordered_patches()]) > -- > 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
