Merge ~cjwatson/launchpad:export-move-package into launchpad:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: bac94633a8d29a0fde87df7d52b79fb21473fcce
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/launchpad:export-move-package
Merge into: launchpad:master
Diff against target: 62 lines (+33/-0)
2 files modified
lib/lp/soyuz/browser/tests/test_archive_webservice.py (+27/-0)
lib/lp/soyuz/interfaces/archive.py (+6/-0)
Reviewer Review Type Date Requested Status
Tom Wardill (community) Approve
Review via email: mp+389259@code.launchpad.net

Commit message

Declare "move" parameter to Archive.copyPackage

To post a comment you must log in.
Revision history for this message
Tom Wardill (twom) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/lib/lp/soyuz/browser/tests/test_archive_webservice.py b/lib/lp/soyuz/browser/tests/test_archive_webservice.py
index b9ad921..1ce3759 100644
--- a/lib/lp/soyuz/browser/tests/test_archive_webservice.py
+++ b/lib/lp/soyuz/browser/tests/test_archive_webservice.py
@@ -627,6 +627,32 @@ class TestCopyPackage(TestCaseWithFactory):
627 job_source = getUtility(IPlainPackageCopyJobSource)627 job_source = getUtility(IPlainPackageCopyJobSource)
628 copy_job = job_source.getActiveJobs(target_archive).one()628 copy_job = job_source.getActiveJobs(target_archive).one()
629 self.assertEqual(target_archive, copy_job.target_archive)629 self.assertEqual(target_archive, copy_job.target_archive)
630 self.assertFalse(copy_job.move)
631
632 def test_copyPackage_move(self):
633 (source, source_archive, source_name, target_archive, to_pocket,
634 to_series, uploader, _, version) = self.setup_data()
635 with person_logged_in(source_archive.owner):
636 source_archive.newComponentUploader(uploader, "main")
637
638 target_archive_url = api_url(target_archive)
639 source_archive_url = api_url(source_archive)
640 ws = webservice_for_person(
641 uploader, permission=OAuthPermission.WRITE_PUBLIC,
642 default_api_version="devel")
643
644 response = ws.named_post(
645 target_archive_url, "copyPackage",
646 source_name=source_name, version=version,
647 from_archive=source_archive_url, to_pocket=to_pocket.name,
648 to_series=to_series.name, include_binaries=False, move=True)
649 self.assertEqual(200, response.status)
650
651 login(ANONYMOUS)
652 job_source = getUtility(IPlainPackageCopyJobSource)
653 copy_job = job_source.getActiveJobs(target_archive).one()
654 self.assertEqual(target_archive, copy_job.target_archive)
655 self.assertTrue(copy_job.move)
630656
631 def test_copyPackages(self):657 def test_copyPackages(self):
632 """Basic smoke test"""658 """Basic smoke test"""
@@ -654,6 +680,7 @@ class TestCopyPackage(TestCaseWithFactory):
654 job_source = getUtility(IPlainPackageCopyJobSource)680 job_source = getUtility(IPlainPackageCopyJobSource)
655 copy_job = job_source.getActiveJobs(target_archive).one()681 copy_job = job_source.getActiveJobs(target_archive).one()
656 self.assertEqual(target_archive, copy_job.target_archive)682 self.assertEqual(target_archive, copy_job.target_archive)
683 self.assertFalse(copy_job.move)
657684
658685
659class TestGetPublishedBinaries(TestCaseWithFactory):686class TestGetPublishedBinaries(TestCaseWithFactory):
diff --git a/lib/lp/soyuz/interfaces/archive.py b/lib/lp/soyuz/interfaces/archive.py
index 2aae255..e3f8462 100644
--- a/lib/lp/soyuz/interfaces/archive.py
+++ b/lib/lp/soyuz/interfaces/archive.py
@@ -1515,6 +1515,12 @@ class IArchiveView(IHasBuildRecords):
1515 " should be recommended, or None to publish the"1515 " should be recommended, or None to publish the"
1516 " update for everyone."),1516 " update for everyone."),
1517 required=False),1517 required=False),
1518 move=Bool(
1519 title=_("Move"),
1520 description=_(
1521 "If true, delete the source publication after copying it to "
1522 "the destination."),
1523 required=False),
1518 )1524 )
1519 @export_write_operation()1525 @export_write_operation()
1520 @operation_for_version('devel')1526 @operation_for_version('devel')

Subscribers

People subscribed via source and target branches

to status/vote changes: