← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~stevenk/launchpad/db-add-parameters-to-idsjob into lp:launchpad

 

Steve Kowalik has proposed merging lp:~stevenk/launchpad/db-add-parameters-to-idsjob into lp:launchpad.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)


This branch allows callers adding a new InitialiseDistroSeriesJob to also pass in the optional arguments arches and packagesets which get passed down the stack to the IntialiseDistroSeries call.
-- 
https://code.launchpad.net/~stevenk/launchpad/db-add-parameters-to-idsjob/+merge/36020
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~stevenk/launchpad/db-add-parameters-to-idsjob into lp:launchpad.
=== modified file 'lib/lp/soyuz/model/initialisedistroseriesjob.py'
--- lib/lp/soyuz/model/initialisedistroseriesjob.py	2010-09-16 01:38:42 +0000
+++ lib/lp/soyuz/model/initialisedistroseriesjob.py	2010-09-20 14:48:04 +0000
@@ -33,16 +33,26 @@
     classProvides(IInitialiseDistroSeriesJobSource)
 
     @classmethod
-    def create(cls, distroseries):
+    def create(cls, distroseries, arches=(), packagesets=()):
         """See `IInitialiseDistroSeriesJob`."""
+        metadata = {'arches': arches, 'packagesets': packagesets}
         job = DistributionJob(
             distroseries.distribution, distroseries, cls.class_job_type,
-            ())
+            metadata)
         IMasterStore(DistributionJob).add(job)
         return cls(job)
 
+    @property
+    def arches(self):
+        return tuple(self.metadata['arches'])
+
+    @property
+    def packagesets(self):
+        return tuple(self.metadata['packagesets'])
+
     def run(self):
         """See `IRunnableJob`."""
-        ids = InitialiseDistroSeries(self.distroseries)
+        # XXX self.packagesets is missing
+        ids = InitialiseDistroSeries(self.distroseries, self.arches)
         ids.check()
         ids.initialise()

=== modified file 'lib/lp/soyuz/tests/test_initialisedistroseriesjob.py'
--- lib/lp/soyuz/tests/test_initialisedistroseriesjob.py	2010-09-16 01:38:42 +0000
+++ lib/lp/soyuz/tests/test_initialisedistroseriesjob.py	2010-09-20 14:48:04 +0000
@@ -72,3 +72,18 @@
         # returns an InitialisationError, then it's good.
         self.assertRaisesWithContent(
             InitialisationError, "Parent series required.", job.run)
+
+    def test_arguments(self):
+        """Test that InitialiseDistroSeriesJob specified with arguments can
+        be gotten out again."""
+        distroseries = self.factory.makeDistroSeries()
+        arches = (u'i386', u'amd64')
+        packagesets = (u'foo', u'bar', u'baz')
+
+        job = getUtility(IInitialiseDistroSeriesJobSource).create(
+            distroseries, arches, packagesets)
+
+        naked_job = removeSecurityProxy(job)
+        self.assertEqual(naked_job.distroseries, distroseries)
+        self.assertEqual(naked_job.arches, arches)
+        self.assertEqual(naked_job.packagesets, packagesets)


Follow ups