~rvb/maas/transaction-1.7-bug-1409852

« back to all changes in this revision

Viewing changes to src/maasserver/models/tests/test_bootresource.py

merged upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
40
40
        arch = factory.make_name('arch')
41
41
        subarch = factory.make_name('subarch')
42
42
        architecture = '%s/%s' % (arch, subarch)
43
 
        resource = factory.make_boot_resource(
 
43
        resource = factory.make_BootResource(
44
44
            rtype=rtype, name=name, architecture=architecture)
45
45
        return resource, (arch, subarch)
46
46
 
179
179
        name = '%s/%s' % (os, series)
180
180
        resource = factory.make_usable_boot_resource(
181
181
            rtype=BOOT_RESOURCE_TYPE.SYNCED, name=name)
182
 
        not_commissionable = factory.make_boot_resource(
 
182
        not_commissionable = factory.make_BootResource(
183
183
            rtype=BOOT_RESOURCE_TYPE.SYNCED, name=name)
184
 
        factory.make_boot_resource_set(not_commissionable)
 
184
        factory.make_BootResourceSet(not_commissionable)
185
185
        commissionables = BootResource.objects.get_commissionable_resource(
186
186
            os, series)
187
187
        self.assertItemsEqual([resource], commissionables)
259
259
 
260
260
    def test_get_resource_for_returns_matching_resource(self):
261
261
        resources = [
262
 
            factory.make_boot_resource(
 
262
            factory.make_BootResource(
263
263
                rtype=random.choice(RTYPE_REQUIRING_OS_SERIES_NAME))
264
264
            for _ in range(3)
265
265
            ]
280
280
    """Tests for the `BootResource` model."""
281
281
 
282
282
    def make_complete_boot_resource_set(self, resource):
283
 
        resource_set = factory.make_boot_resource_set(resource)
 
283
        resource_set = factory.make_BootResourceSet(resource)
284
284
        filename = factory.make_name('name')
285
285
        filetype = factory.pick_enum(BOOT_RESOURCE_FILE_TYPE)
286
 
        largefile = factory.make_large_file()
287
 
        factory.make_boot_resource_file(
 
286
        largefile = factory.make_LargeFile()
 
287
        factory.make_BootResourceFile(
288
288
            resource_set, largefile, filename=filename, filetype=filetype)
289
289
        return resource_set
290
290
 
291
291
    def test_validation_raises_error_on_missing_subarch(self):
292
292
        arch = factory.make_name('arch')
293
293
        self.assertRaises(
294
 
            ValidationError, factory.make_boot_resource, architecture=arch)
 
294
            ValidationError, factory.make_BootResource, architecture=arch)
295
295
 
296
296
    def test_validation_raises_error_on_invalid_name_for_synced(self):
297
297
        name = factory.make_name('name')
326
326
            factory.make_name('os'), factory.make_name('series'))
327
327
        arch = '%s/%s' % (
328
328
            factory.make_name('arch'), factory.make_name('subarch'))
329
 
        factory.make_boot_resource(
 
329
        factory.make_BootResource(
330
330
            rtype=BOOT_RESOURCE_TYPE.SYNCED,
331
331
            name=name, architecture=arch)
332
332
        self.assertRaises(
333
333
            ValidationError,
334
 
            factory.make_boot_resource,
 
334
            factory.make_BootResource,
335
335
            rtype=BOOT_RESOURCE_TYPE.GENERATED, name=name, architecture=arch)
336
336
 
337
337
    def test_display_rtype(self):
343
343
        arch = factory.make_name('arch')
344
344
        subarch = factory.make_name('subarch')
345
345
        architecture = '%s/%s' % (arch, subarch)
346
 
        resource = factory.make_boot_resource(architecture=architecture)
 
346
        resource = factory.make_BootResource(architecture=architecture)
347
347
        self.assertEqual([arch, subarch], resource.split_arch())
348
348
 
349
349
    def test_get_latest_set(self):
350
 
        resource = factory.make_boot_resource()
351
 
        factory.make_boot_resource_set(resource)
352
 
        latest_two = factory.make_boot_resource_set(resource)
 
350
        resource = factory.make_BootResource()
 
351
        factory.make_BootResourceSet(resource)
 
352
        latest_two = factory.make_BootResourceSet(resource)
353
353
        self.assertEqual(latest_two, resource.get_latest_set())
354
354
 
355
355
    def test_get_latest_complete_set(self):
356
 
        resource = factory.make_boot_resource()
357
 
        factory.make_boot_resource_set(resource)
 
356
        resource = factory.make_BootResource()
 
357
        factory.make_BootResourceSet(resource)
358
358
        self.make_complete_boot_resource_set(resource)
359
359
        latest_complete = self.make_complete_boot_resource_set(resource)
360
 
        factory.make_boot_resource_set(resource)
 
360
        factory.make_BootResourceSet(resource)
361
361
        self.assertEqual(latest_complete, resource.get_latest_complete_set())
362
362
 
363
363
    def configure_now(self):
367
367
 
368
368
    def test_get_next_version_name_returns_current_date(self):
369
369
        expected_version = self.configure_now()
370
 
        resource = factory.make_boot_resource()
 
370
        resource = factory.make_BootResource()
371
371
        self.assertEqual(expected_version, resource.get_next_version_name())
372
372
 
373
373
    def test_get_next_version_name_returns_first_revision(self):
374
374
        expected_version = '%s.1' % self.configure_now()
375
 
        resource = factory.make_boot_resource()
376
 
        factory.make_boot_resource_set(
 
375
        resource = factory.make_BootResource()
 
376
        factory.make_BootResourceSet(
377
377
            resource, version=resource.get_next_version_name())
378
378
        self.assertEqual(expected_version, resource.get_next_version_name())
379
379
 
380
380
    def test_get_next_version_name_returns_later_revision(self):
381
381
        expected_version = self.configure_now()
382
382
        set_count = random.randint(2, 4)
383
 
        resource = factory.make_boot_resource()
 
383
        resource = factory.make_BootResource()
384
384
        for _ in range(set_count):
385
 
            factory.make_boot_resource_set(
 
385
            factory.make_BootResourceSet(
386
386
                resource, version=resource.get_next_version_name())
387
387
        self.assertEqual(
388
388
            '%s.%d' % (expected_version, set_count),
392
392
        arch = factory.make_name('arch')
393
393
        subarch = factory.make_name('subarch')
394
394
        architecture = '%s/%s' % (arch, subarch)
395
 
        resource = factory.make_boot_resource(architecture=architecture)
 
395
        resource = factory.make_BootResource(architecture=architecture)
396
396
        self.assertTrue(resource.supports_subarch(subarch))
397
397
 
398
398
    def test_supports_subarch_returns_False_if_subarches_is_missing(self):
399
 
        resource = factory.make_boot_resource()
 
399
        resource = factory.make_BootResource()
400
400
        self.assertFalse(
401
401
            resource.supports_subarch(factory.make_name('subarch')))
402
402
 
403
403
    def test_supports_subarch_returns_True_if_subarch_in_subarches(self):
404
404
        subarches = [factory.make_name('subarch') for _ in range(3)]
405
405
        subarch = random.choice(subarches)
406
 
        resource = factory.make_boot_resource(
 
406
        resource = factory.make_BootResource(
407
407
            extra={'subarches': ','.join(subarches)})
408
408
        self.assertTrue(resource.supports_subarch(subarch))
409
409
 
410
410
    def test_supports_subarch_returns_False_if_subarch_not_in_subarches(self):
411
411
        subarches = [factory.make_name('subarch') for _ in range(3)]
412
 
        resource = factory.make_boot_resource(
 
412
        resource = factory.make_BootResource(
413
413
            extra={'subarches': ','.join(subarches)})
414
414
        self.assertFalse(
415
415
            resource.supports_subarch(factory.make_name('subarch')))