def test_copy_single_distro_files(create_kernel_initrd, fk_initrd, fk_kernel): # Arrange # Create fake files directory = create_kernel_initrd(fk_kernel, fk_initrd) # Create test API test_api = CobblerAPI() # Get Collection Manager used by the API test_collection_mgr = test_api._collection_mgr # Create a test Distro test_distro = Distro(test_api) test_distro.name = "test_copy_single_distro_files" test_distro.kernel = str(os.path.join(directory, fk_kernel)) test_distro.initrd = str(os.path.join(directory, fk_initrd)) # Add test distro to the API test_api.add_distro(test_distro) # Create class under test test_gen = tftpgen.TFTPGen(test_collection_mgr) # Act test_gen.copy_single_distro_files(test_distro, directory, False) # Assert that path created by function under test is actually there result_kernel = os.path.join(directory, "images", test_distro.name, fk_kernel) result_initrd = os.path.join(directory, "images", test_distro.name, fk_initrd) assert os.path.exists(result_kernel) assert os.path.exists(result_initrd)
def test_generate_profile(self, api, create_kernel_initrd, fk_kernel, fk_initrd, cleanup_items): # Arrange folder = create_kernel_initrd(fk_kernel, fk_initrd) kernel_path = os.path.join(folder, fk_kernel) initrd_path = os.path.join(folder, fk_initrd) test_distro = Distro(api) test_distro.name = "testdistro" test_distro.kernel = kernel_path test_distro.initrd = initrd_path api.add_distro(test_distro) test_profile = Profile(api) test_profile.name = "testprofile" test_profile.distro = test_distro.name api.add_profile(test_profile) blendered_data = utils.blender(api, False, test_profile) test_builder = AppendLineBuilder(test_distro.name, blendered_data) # Act result = test_builder.generate_profile("suse") # Assert # Very basic test yes but this is the expected result atm # TODO: Make tests more sophisticated assert ( result == " append initrd=testdistro.img install=http://127.0.0.1:80/cblr/links/testdistro autoyast=default.ks" )
def test_standalone_run( self, api, create_kernel_initrd, fk_kernel, fk_initrd, create_loaders, tmpdir_factory, cleanup_items, ): # Arrange iso_directory = tmpdir_factory.mktemp("isodir") iso_source = tmpdir_factory.mktemp("isosource") iso_location = iso_directory.join("autoinst.iso") folder = create_kernel_initrd(fk_kernel, fk_initrd) kernel_path = os.path.join(folder, fk_kernel) initrd_path = os.path.join(folder, fk_initrd) test_distro = Distro(api) test_distro.name = "testdistro" test_distro.kernel = kernel_path test_distro.initrd = initrd_path api.add_distro(test_distro) build_iso = StandaloneBuildiso(api) # Act build_iso.run(iso=str(iso_location), distro_name=test_distro.name, source=str(iso_source)) # Assert assert iso_location.exists()
def test_netboot_run( self, api, create_kernel_initrd, fk_kernel, fk_initrd, cleanup_items, create_loaders, tmpdir, ): # Arrange folder = create_kernel_initrd(fk_kernel, fk_initrd) kernel_path = os.path.join(folder, fk_kernel) initrd_path = os.path.join(folder, fk_initrd) test_distro = Distro(api) test_distro.name = "testdistro" test_distro.kernel = kernel_path test_distro.initrd = initrd_path api.add_distro(test_distro) build_iso = NetbootBuildiso(api) iso_location = tmpdir.join("autoinst.iso") # Act build_iso.run(iso=str(iso_location), distro_name=test_distro.name) # Assert assert iso_location.exists()
def test_filter_system(self, api, create_kernel_initrd, fk_kernel, fk_initrd): # Arrange folder = create_kernel_initrd(fk_kernel, fk_initrd) kernel_path = os.path.join(folder, fk_kernel) initrd_path = os.path.join(folder, fk_initrd) test_distro = Distro(api) test_distro.name = "testdistro" test_distro.kernel = kernel_path test_distro.initrd = initrd_path api.add_distro(test_distro) test_profile = Profile(api) test_profile.name = "testprofile" test_profile.distro = test_distro.name api.add_profile(test_profile) test_system = System(api) test_system.name = "testsystem" test_system.profile = test_profile.name api.add_system(test_system) itemlist = [test_system.name] build_iso = NetbootBuildiso(api) expected_result = [test_system] # Act result = build_iso.filter_systems(itemlist) # Assert assert expected_result == result
def test_non_equality(): # Arrange test_api = CobblerAPI() distro1 = Distro(test_api) distro2 = Distro(test_api) # Act & Assert assert distro1 != distro2 assert "" != distro1
def test_to_dict_from_fields(): # Arrange test_api = CobblerAPI() test_distro = Distro(test_api._collection_mgr) # Act result = utils.to_dict_from_fields(test_distro, test_distro.get_fields()) # Assert - This test is specific to a Distro object assert len(result.keys()) == 25
def test_source_repos(value): # Arrange test_api = CobblerAPI() distro = Distro(test_api) # Act distro.source_repos = value # Assert assert distro.source_repos == value
def test_owners(value): # Arrange test_api = CobblerAPI() distro = Distro(test_api) # Act distro.owners = value # Assert assert distro.owners == value
def test_mgmt_classes(value): # Arrange test_api = CobblerAPI() distro = Distro(test_api) # Act distro.mgmt_classes = value # Assert assert distro.mgmt_classes == value
def test_redhat_management_key(value, expected_exception): # Arrange test_api = CobblerAPI() distro = Distro(test_api) # Act with expected_exception: distro.redhat_management_key = value # Assert assert distro.redhat_management_key == value
def test_os_version(value, expected_exception): # Arrange test_api = CobblerAPI() distro = Distro(test_api) # Act with expected_exception: distro.os_version = value # Assert assert distro.os_version == value
def test_to_string_from_fields(): # Arrange test_api = CobblerAPI() test_manager = CollectionManager(test_api) test_distro = Distro(test_manager) # Act result = utils.to_string_from_fields(test_distro.__dict__, test_distro.get_fields()) # Assert - This test is specific to a Distro object assert len(result.splitlines()) == 19
def test_get_setter_methods_from_fields(): # Arrange test_api = CobblerAPI() test_manager = CollectionManager(test_api) test_distro = Distro(test_manager) # Act result = utils.get_setter_methods_from_fields(test_distro, test_distro.get_fields()) # Assert assert isinstance(result, dict)
def test_fetchable_files(value, expected_exception): # Arrange test_api = CobblerAPI() distro = Distro(test_api) # Act with expected_exception: distro.fetchable_files = value # Assert assert distro.fetchable_files == value
def test_remote_grub_kernel(value): # Arrange # FIXME: This shouldn't succeed test_api = CobblerAPI() distro = Distro(test_api) # Act distro.remote_grub_kernel = value # Assert assert distro.remote_grub_kernel == value
def test_tree_build_time(value, expected): # Arrange test_api = CobblerAPI() distro = Distro(test_api) # Act with expected: distro.tree_build_time = value # Assert assert distro.tree_build_time == value
def test_remote_grub_initrd(value, expected_exception): # Arrange test_api = CobblerAPI() distro = Distro(test_api) # Act with expected_exception: distro.remote_grub_initrd = value # Assert assert distro.remote_grub_initrd == value
def test_check_if_valid(): # Arrange test_api = CobblerAPI() distro = Distro(test_api) distro.name = "testname" # Act distro.check_if_valid() # Assert assert True
def test_breed(value, expected_exception): # Arrange test_api = CobblerAPI() utils.load_signatures("/var/lib/cobbler/distro_signatures.json") distro = Distro(test_api) # Act with expected_exception: distro.breed = value # Assert assert distro.breed == value
def test_find_distro_path(): # Arrange test_api = CobblerAPI() test_manager = CollectionManager(test_api) test_distro = Distro(test_manager) test_distro.kernel = "/dev/shm/fakekernelfile" # Act result = utils.find_distro_path(test_manager.settings(), test_distro) # Assert assert result == "/dev/shm"
def test_kernel(value, expected_exception): # TODO: Create fake kernel so we can set it successfully # Arrange test_api = CobblerAPI() distro = Distro(test_api) # Act with expected_exception: distro.kernel = value # Assert assert distro.kernel == value
def test_remote_boot_initrd(value, expected_exception): # TODO: Create fake initrd to have a real test # Arrange test_api = CobblerAPI() distro = Distro(test_api) # Act with expected_exception: distro.remote_boot_initrd = value # Assert assert distro.remote_boot_initrd == value
def test_to_dict(): # Arrange test_api = CobblerAPI() titem = Distro(test_api) # Act result = titem.to_dict() # Assert assert isinstance(result, dict) assert "autoinstall_meta" in result assert "ks_meta" in result
def test_remote_boot_kernel(value, expected_exception): # Arrange # TODO: Create fake kernel so we can test positive paths test_api = CobblerAPI() distro = Distro(test_api) # Act with expected_exception: distro.remote_boot_kernel = value # Assert assert distro.remote_boot_kernel == value
def test_find_distro_path(create_testfile, tmp_path): # Arrange test_api = CobblerAPI() fk_kernel = "vmlinuz1" create_testfile(fk_kernel) test_distro = Distro(test_api) test_distro.kernel = os.path.join(tmp_path, fk_kernel) # Act result = utils.find_distro_path(Settings(), test_distro) # Assert assert result == tmp_path.as_posix()
def test_set_os_version(): # Arrange test_api = CobblerAPI() test_manager = CollectionManager(test_api) testdistro = Distro(test_manager) testdistro.set_breed("redhat") # Act utils.set_os_version(testdistro, "rhel4") # Assert assert testdistro.breed == "redhat" assert testdistro.os_version == "rhel4"
def test_clear_from_fields(): # Arrange test_api = CobblerAPI() test_distro = Distro(test_api._collection_mgr) test_distro.name = "Test" # Pre Assert to check this works assert test_distro.name == "Test" # Act utils.clear_from_fields(test_distro, test_distro.get_fields()) # Assert assert test_distro.name == ""
def test_arch(value, expected): # Arrange test_api = CobblerAPI() distro = Distro(test_api) # Act with expected: distro.arch = value # Assert if isinstance(value, str): assert distro.arch.value == value else: assert distro.arch == value
def test_boot_loaders(value, expected_exception): # Arrange test_api = CobblerAPI() distro = Distro(test_api) # Act with expected_exception: distro.boot_loaders = value # Assert if value == "": assert distro.boot_loaders == [] else: assert distro.boot_loaders == value