예제 #1
0
 def test_can_get_object(self, sets):
     manager = ObjectsManager(sets)
     obj_index = manager.create(self.options)
     for set_index in range(sets):
         obj = manager.get(obj_index=obj_index, set_index=set_index)
         self.assertEqual(obj.filename, __file__)
         self.assertEqual(obj.mode, 'raw')
         self.assertEqual(obj['target'], '/dev/sda')
예제 #2
0
 def test_can_create_object_with_different_values(self):
     manager = ObjectsManager(2)
     self.assertEqual(len(manager.all()), 0)
     self.options['target'] = ('/dev/sda', '/dev/sdb')
     obj_index = manager.create(self.options)
     obj0 = manager.get(obj_index=obj_index, set_index=0)
     obj1 = manager.get(obj_index=obj_index, set_index=1)
     self.assertEqual(obj0['target'], '/dev/sda')
     self.assertEqual(obj1['target'], '/dev/sdb')
예제 #3
0
 def create_package(self):
     pkg = Package(version=self.version, product=self.product)
     pkg.objects.create(self.obj_options)
     pkg.supported_hardware.add(self.hardware)
     # control supported hardware
     hw = SupportedHardwareManager()
     hw.add(self.hardware)
     # control objects
     objs = ObjectsManager()
     objs.create(self.obj_options)
     return pkg, hw, objs
예제 #4
0
 def test_can_compare_managers(self, sets):
     manager1 = ObjectsManager()
     manager2 = ObjectsManager()
     self.assertEqual(manager1, manager2)
     manager1.create(self.options)
     self.assertNotEqual(manager1, manager2)
     manager2.create(self.options)
     self.assertEqual(manager1, manager2)
예제 #5
0
    def test_can_create_package_from_dump(self):
        dump = {
            'product': self.product,
            'version': self.version,
        }

        # Supported hardware
        hardware_dump = {'supported-hardware': 'any'}
        dump.update(hardware_dump)
        hardware = SupportedHardwareManager(dump=hardware_dump)

        # Objects
        object_dump = {
            'filename': self.obj_fn,
            'mode': 'copy',
            'target-type': 'device',
            'target': '/dev/sda',
            'target-path': '/boot',
            'filesystem': 'ext4',
        }
        objects_dump = {'objects': [[object_dump], [object_dump]]}
        dump.update(objects_dump)
        objects = ObjectsManager(dump=objects_dump)

        pkg = Package(dump=dump)
        self.assertEqual(pkg.version, self.version)
        self.assertEqual(pkg.product, self.product)
        self.assertEqual(pkg.supported_hardware, hardware)
        self.assertEqual(pkg.objects, objects)
예제 #6
0
 def test_remove_object_raises_error_if_invalid_index(self, sets):
     manager = ObjectsManager(sets)
     obj_index = manager.create(self.options)
     self.assertEqual(len(manager.all()), sets)
     with self.assertRaises(ValueError):
         manager.remove(100)
     self.assertEqual(len(manager.all()), sets)
예제 #7
0
    def test_update_asymmetrical_option_raises_without_install_set(self, sets):
        manager = ObjectsManager(sets)
        obj_index = manager.create(self.options)

        with self.assertRaises(ValueError):
            manager.update(obj_index, 'target', '/dev/sdb')

        for set_index in range(sets):
            obj = manager.get(obj_index=obj_index, set_index=set_index)
            self.assertEqual(obj['target'], '/dev/sda')
예제 #8
0
    def test_can_update_symmetrical_object_option(self, sets):
        manager = ObjectsManager(sets)
        obj_index = manager.create(self.options)
        for set_index in range(sets):
            obj = manager.get(obj_index=obj_index, set_index=set_index)
            self.assertEqual(obj.filename, __file__)

        manager.update(obj_index=obj_index,
                       option='filename',
                       value='new-filename')

        for set_index in range(sets):
            obj = manager.get(obj_index=obj_index, set_index=set_index)
            self.assertEqual(obj.filename, 'new-filename')
예제 #9
0
    def test_can_update_asymmetrical_object_option(self, sets):
        manager = ObjectsManager(sets)
        obj_index = manager.create(self.options)
        for set_index in range(sets):
            obj = manager.get(obj_index=obj_index, set_index=set_index)
            self.assertEqual(obj['target'], '/dev/sda')

        manager.update(obj_index=obj_index,
                       set_index=0,
                       option='target',
                       value='/dev/sdb')

        for set_index in range(sets):
            obj = manager.get(obj_index=obj_index, set_index=set_index)
            if set_index == 0:
                self.assertEqual(obj['target'], '/dev/sdb')
            else:
                self.assertEqual(obj['target'], '/dev/sda')
예제 #10
0
 def test_can_get_all_objects(self, sets):
     manager = ObjectsManager(sets)
     obj_index = manager.create(self.options)
     expected = [Object(self.options).to_metadata() for _ in range(sets)]
     observed = [obj.to_metadata() for obj in manager.all()]
     self.assertEqual(observed, expected)
예제 #11
0
 def test_can_remove_object(self, sets):
     manager = ObjectsManager(sets)
     obj_index = manager.create(self.options)
     self.assertEqual(len(manager.all()), 1 * sets)
     manager.remove(obj_index)
     self.assertEqual(len(manager.all()), 0)
예제 #12
0
 def test_get_installation_set_raises_error_if_invalid_index(self, sets):
     manager = ObjectsManager(sets)
     with self.assertRaises(TypeError):
         manager['invalid-index']
예제 #13
0
 def test_get_installation_set_raises_error_if_missing_index(self, sets):
     manager = ObjectsManager(sets)
     with self.assertRaises(IndexError):
         manager[100]
예제 #14
0
 def test_can_get_installation_set(self, sets):
     manager = ObjectsManager(sets)
     installation_set = manager[0]
     self.assertIsInstance(installation_set, list)
예제 #15
0
 def test_is_single_returns_False_when_not_single(self):
     manager = ObjectsManager(2)
     self.assertFalse(manager.is_single())
예제 #16
0
 def test_can_create_package(self):
     pkg = Package(version=self.version, product=self.product)
     self.assertEqual(pkg.version, self.version)
     self.assertEqual(pkg.product, self.product)
     self.assertEqual(pkg.objects, ObjectsManager())
     self.assertEqual(pkg.supported_hardware, SupportedHardwareManager())