Best Python code snippet using autotest_python
abstract_ssh.py
Source:abstract_ssh.py  
...56        appropriate scp command for encoding it. Remote paths must be57        pre-encoded. """58        command = "scp -rpq -P %d %s '%s'"59        return command % (self.port, " ".join(sources), dest)60    def _make_rsync_compatible_globs(self, path, is_local):61        """ Given an rsync-style path, returns a list of globbed paths62        that will hopefully provide equivalent behaviour for scp. Does not63        support the full range of rsync pattern matching behaviour, only that64        exposed in the get/send_file interface (trailing slashes).65        The is_local param is flag indicating if the paths should be66        interpreted as local or remote paths. """67        # non-trailing slash paths should just work68        if len(path) == 0 or path[-1] != "/":69            return [path]70        # make a function to test if a pattern matches any files71        if is_local:72            def glob_matches_files(path):73                return len(glob.glob(path)) > 074        else:75            def glob_matches_files(path):76                result = self.run("ls \"%s\"" % utils.sh_escape(path),77                                  ignore_status=True)78                return result.exit_status == 079        # take a set of globs that cover all files, and see which are needed80        patterns = ["*", ".[!.]*"]81        patterns = [p for p in patterns if glob_matches_files(path + p)]82        # convert them into a set of paths suitable for the commandline83        path = utils.sh_escape(path)84        if is_local:85            return ["\"%s\"%s" % (path, pattern) for pattern in patterns]86        else:87            return ["\"%s\"" % (path + pattern) for pattern in patterns]88    def _make_rsync_compatible_source(self, source, is_local):89        """ Applies the same logic as _make_rsync_compatible_globs, but90        applies it to an entire list of sources, producing a new list of91        sources, properly quoted. """92        return sum((self._make_rsync_compatible_globs(path, is_local)93                    for path in source), [])94    def _set_umask_perms(self, dest):95        """Given a destination file/dir (recursively) set the permissions on96        all the files and directories to the max allowed by running umask."""97        # now this looks strange but I haven't found a way in Python to _just_98        # get the umask, apparently the only option is to try to set it99        umask = os.umask(0)100        os.umask(umask)101        max_privs = 0777 & ~umask102        def set_file_privs(filename):103            file_stat = os.stat(filename)104            file_privs = max_privs105            # if the original file permissions do not have at least one106            # executable bit then do not set it anywhere...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
