def test_correct_lower_upper(self): def user_input1(x): self.assertEquals(prompt.YES.upper(), x[6]) self.assertEquals(prompt.NO.lower(), x[8]) return prompt.YES prompt.user_input = user_input1 r = prompt.prompt("") def user_input2(x): self.assertEquals(prompt.YES.lower(), x[6]) self.assertEquals(prompt.NO.upper(), x[8]) return prompt.YES prompt.user_input = user_input2 r = prompt.prompt("", prompt.NO)
def test_yes_yes_case(self): prompt.user_input = lambda x: prompt.YES r = prompt.prompt("test") self.assertEquals(prompt.YES, r)
def install(args): """Install a given package""" try: pkgnames = args.package workingdir = args.build_dir or BUILD_DIR except AttributeError: pkgnames = args workingdir = BUILD_DIR if os.getuid() == 0: print('Installations as root are not allowed. Exiting.') return print(_("resolving dependencies...")) editor = os.getenv('EDITOR') or 'vim' # Check packages, to fail early packages = [] for pkgname in pkgnames: try: # Make sure the package exists ccr.info(pkgname) except ccr.PackageNotFound: print(_("Package not found: {pkg}").format(pkg=pkgname)) return 1 packages += dependency_chain(pkgname, workingdir) # Check dependencies for pkgname in packages: try: # Make sure the package exists ccr.info(pkgname) except ccr.PackageNotFound: print(_("Package not found: {pkg}").format(pkg=pkgname)) return 1 print_targets(packages) response = prompt.prompt(_("Proceed with installation?"), major=True) if response == prompt.NO: return 0 for package in packages: try: get_source_files([package], workingdir) except (requests.exceptions.HTTPError, tarfile.ReadError): print(_("Package not found: {pkg}").format(pkg=package)) return 1 # Ask to edit the PKGBUILD response = prompt.prompt(_("Edit {pkg} PKGBUILD with $EDITOR?").format(pkg=package), color='yellow') if response == prompt.YES: subprocess.call([editor, "{d}/{pkg}/PKGBUILD".format(d=workingdir, pkg=package)]) # Ask to edit the .install, if it exists if os.path.isfile("{d}/{pkg}/{pkg}.install".format(d=workingdir, pkg=package)): response = prompt.prompt(_("Edit {pkg}.install with $EDITOR?").format(pkg=package), color='yellow') if response == prompt.YES: subprocess.call([editor, "{d}/{pkg}/{pkg}.install".format(d=workingdir, pkg=package)]) # makepkg curdir = os.getcwd() os.chdir(os.path.join(workingdir, package)) try: subprocess.check_call(["makepkg", "-rsi"]) except subprocess.CalledProcessError: return 1 os.chdir(curdir)
def test_no_no_case(self): prompt.user_input = lambda x: prompt.NO r = prompt.prompt("test", prompt.NO) self.assertEquals(prompt.NO, r)
def install(args): """Install a given package""" try: pkgnames = args.package workingdir = args.build_dir or BUILD_DIR except AttributeError: pkgnames = args workingdir = BUILD_DIR if os.getuid() == 0: print('Installations as root are not allowed. Exiting.') return print(_("resolving dependencies...")) editor = os.getenv('EDITOR') or 'vim' # Check packages, to fail early packages = [] for pkgname in pkgnames: try: # Make sure the package exists ccr.info(pkgname) except ccr.PackageNotFound: print(_("Package not found: {pkg}").format(pkg=pkgname)) return 1 packages += dependency_chain(pkgname, workingdir) # Check dependencies for pkgname in packages: try: # Make sure the package exists ccr.info(pkgname) except ccr.PackageNotFound: print(_("Package not found: {pkg}").format(pkg=pkgname)) return 1 print_targets(packages) response = prompt.prompt(_("Proceed with installation?"), major=True) if response == prompt.NO: return 0 for package in packages: try: get_source_files([package], workingdir) except (requests.exceptions.HTTPError, tarfile.ReadError): print(_("Package not found: {pkg}").format(pkg=package)) return 1 # Ask to edit the PKGBUILD response = prompt.prompt( _("Edit {pkg} PKGBUILD with $EDITOR?").format(pkg=package), color='yellow') if response == prompt.YES: subprocess.call([ editor, "{d}/{pkg}/PKGBUILD".format(d=workingdir, pkg=package) ]) # Ask to edit the .install, if it exists if os.path.isfile("{d}/{pkg}/{pkg}.install".format(d=workingdir, pkg=package)): response = prompt.prompt( _("Edit {pkg}.install with $EDITOR?").format(pkg=package), color='yellow') if response == prompt.YES: subprocess.call([ editor, "{d}/{pkg}/{pkg}.install".format(d=workingdir, pkg=package) ]) # makepkg curdir = os.getcwd() os.chdir(os.path.join(workingdir, package)) try: subprocess.check_call(["makepkg", "-rsi"]) except subprocess.CalledProcessError: return 1 os.chdir(curdir)