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')
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')
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
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)
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)
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)
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')
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')
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')
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)
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)
def test_get_installation_set_raises_error_if_invalid_index(self, sets): manager = ObjectsManager(sets) with self.assertRaises(TypeError): manager['invalid-index']
def test_get_installation_set_raises_error_if_missing_index(self, sets): manager = ObjectsManager(sets) with self.assertRaises(IndexError): manager[100]
def test_can_get_installation_set(self, sets): manager = ObjectsManager(sets) installation_set = manager[0] self.assertIsInstance(installation_set, list)
def test_is_single_returns_False_when_not_single(self): manager = ObjectsManager(2) self.assertFalse(manager.is_single())
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())