File: context.py

package info (click to toggle)
python-invoke 2.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,856 kB
  • sloc: python: 15,986; makefile: 24
file content (19 lines) | stat: -rw-r--r-- 837 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from invoke import Context, Config
from invocations import ci as ci_mod


class Context_:
    class sudo:
        def base_case(self):
            c = Context()
            # Grab CI-oriented sudo user/pass direct from invocations.ci
            # TODO: might be nice to give Collection a way to get a Config
            # object direct, instead of a dict?
            ci_conf = Config(ci_mod.ns.configuration()).ci.sudo
            user = ci_conf.user
            c.config.sudo.password = ci_conf.password
            # Safety 1: ensure configured user even exists
            assert c.run("id {}".format(user), warn=True)
            # Safety 2: make sure we ARE them (and not eg root already)
            assert c.run("whoami", hide=True).stdout.strip() == user
            assert c.sudo("whoami", hide=True).stdout.strip() == "root"