~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/soyuz/tests/test_packageupload.py

  • Committer: Launchpad Patch Queue Manager
  • Date: 2011-06-25 08:55:37 UTC
  • mfrom: (13287.1.8 bug-800652)
  • Revision ID: launchpad@pqm.canonical.com-20110625085537-moikyoo2pe98zs7r
[r=jcsackett, julian-edwards][bug=800634,
        800652] Enable and display overrides on sync package uploads.

Show diffs side-by-side

added added

removed removed

Lines of Context:
370
370
 
371
371
    def makeUploadWithPackageCopyJob(self, sourcepackagename=None):
372
372
        """Create a `PackageUpload` plus attached `PlainPackageCopyJob`."""
373
 
        job_factory_args = {}
374
 
        if sourcepackagename is not None:
375
 
            job_factory_args['package_name'] = sourcepackagename.name
376
 
            job_factory_args['package_version'] = '1.0'
377
 
        job = self.factory.makePlainPackageCopyJob(**job_factory_args)
378
 
        naked_job = removeSecurityProxy(job).context
379
 
        upload = self.factory.makePackageUpload(package_copy_job=naked_job)
380
 
        return upload, job
 
373
        from lp.soyuz.model.packagecopyjob import IPackageCopyJobSource
 
374
        upload = self.factory.makeCopyJobPackageUpload(
 
375
            sourcepackagename=sourcepackagename)
 
376
        return upload, getUtility(IPackageCopyJobSource).wrap(
 
377
            upload.package_copy_job)
381
378
 
382
379
    def test_package_copy_job_property(self):
383
380
        # Test that we can set and get package_copy_job.
395
392
    def test_overrideSource_with_copy_job(self):
396
393
        # The overrides should be stored in the job's metadata.
397
394
        pu, pcj = self.makeUploadWithPackageCopyJob()
 
395
        old_component = getUtility(IComponentSet)[pcj.component_name]
398
396
        component = getUtility(IComponentSet)['restricted']
399
397
        section = getUtility(ISectionSet)['games']
400
398
 
401
 
        expected_metadata = {
 
399
        expected_metadata = {}
 
400
        expected_metadata.update(pcj.metadata)
 
401
        expected_metadata.update({
402
402
            'component_override': component.name,
403
403
            'section_override': section.name,
404
 
        }
405
 
        expected_metadata.update(pcj.metadata)
406
 
 
407
 
        pu.overrideSource(component, section, allowed_components=[component])
408
 
 
 
404
            })
 
405
 
 
406
        result = pu.overrideSource(
 
407
            component, section, allowed_components=[component, old_component])
 
408
 
 
409
        self.assertTrue(result)
409
410
        self.assertEqual(expected_metadata, pcj.metadata)
410
411
 
 
412
    def test_overrideSource_checks_permission_for_old_component(self):
 
413
        pu = self.factory.makeCopyJobPackageUpload()
 
414
        only_allowed_component = self.factory.makeComponent()
 
415
        section = self.factory.makeSection()
 
416
        self.assertRaises(
 
417
            QueueInconsistentStateError,
 
418
            pu.overrideSource,
 
419
            only_allowed_component, section, [only_allowed_component])
 
420
 
 
421
    def test_overrideSource_checks_permission_for_new_component(self):
 
422
        pu, pcj = self.makeUploadWithPackageCopyJob()
 
423
        current_component = getUtility(IComponentSet)[pcj.component_name]
 
424
        disallowed_component = self.factory.makeComponent()
 
425
        section = self.factory.makeSection()
 
426
        self.assertRaises(
 
427
            QueueInconsistentStateError,
 
428
            pu.overrideSource,
 
429
            disallowed_component, section, [current_component])
 
430
 
411
431
    def test_acceptFromQueue_with_copy_job(self):
412
432
        # acceptFromQueue should accept the upload and resume the copy
413
433
        # job.
414
434
        pu, pcj = self.makeUploadWithPackageCopyJob()
 
435
        pu.pocket = PackagePublishingPocket.RELEASE
415
436
        self.assertEqual(PackageUploadStatus.NEW, pu.status)
416
 
        pcj.suspend()
417
437
 
418
438
        pu.acceptFromQueue()
419
439
 
423
443
    def test_rejectFromQueue_with_copy_job(self):
424
444
        # rejectFromQueue will reject the upload and fail the copy job.
425
445
        pu, pcj = self.makeUploadWithPackageCopyJob()
426
 
        pcj.suspend()
427
446
 
428
447
        pu.rejectFromQueue()
429
448
 
451
470
        # An upload with a copy job takes its component and section
452
471
        # names from the job.
453
472
        spn = self.factory.makeSourcePackageName()
454
 
        upload, job = self.makeUploadWithPackageCopyJob(sourcepackagename=spn)
 
473
        upload, pcj = self.makeUploadWithPackageCopyJob(sourcepackagename=spn)
455
474
        component = self.factory.makeComponent()
456
475
        section = self.factory.makeSection()
457
 
        job.addSourceOverride(SourceOverride(
458
 
            source_package_name=spn, component=component, section=section))
 
476
        pcj.addSourceOverride(SourceOverride(spn, component, section))
459
477
        self.assertEqual(component.name, upload.component_name)
460
478
 
461
479
    def test_displayname_is_package_name(self):