def test_manager_as_metadata(self, sets): manager = ObjectsManager(sets) manager.create(self.options) metadata = manager.to_metadata()[manager.metadata] expected = [Object(self.options).to_metadata()] self.assertEqual(len(metadata), sets) for index in range(sets): self.assertEqual(metadata[index], expected)
def test_manager_as_template(self, sets): manager = ObjectsManager(sets) manager.create(self.options) template = manager.to_template()[manager.metadata] expected = [Object(self.options).to_template()] self.assertEqual(len(template), sets) for index in range(sets): self.assertEqual(template[index], expected)
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_sort_objects(self): manager = ObjectsManager() names = [str(n) for n in range(9, 0, -1)] for name in names: self.options['filename'] = name manager.create(self.options) observed = [objs[0].filename for objs in manager.objects] expected = [str(n) for n in range(1, 10)] self.assertEqual(observed, expected)
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_manager_as_string(self, sets): self.addCleanup(os.chdir, os.getcwd()) fixtures_dir = 'fixtures/objects' os.chdir(os.path.join(os.path.dirname(__file__), fixtures_dir)) manager = ObjectsManager(sets) self.options['filename'] = 'manager.txt' manager.create(self.options) name = 'single' if sets == 1 else 'activeinactive' fn = '{}-mode.txt'.format(name) with open(fn) as fp: expected = fp.read().strip() self.assertEqual(str(manager), expected)
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_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 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)