summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--000.yarn14
-rw-r--r--lib.py31
-rw-r--r--yarnhelper.py27
3 files changed, 38 insertions, 34 deletions
diff --git a/000.yarn b/000.yarn
index 0cf78a9..1657eca 100644
--- a/000.yarn
+++ b/000.yarn
@@ -272,12 +272,12 @@ WHEN admin creates user
vars['users'] = []
vars['users'].append(username)
# FIXME: Create first, this is temporary
- helper.gitano(
+ gitano(
None,
'user add {} {}@example.com Test {}'.format(
username, username, username))
pubkey = helper.ssh_keygen(username)
- helper.gitano(None,
+ gitano(None,
'as {} sshkey add default'.format(username), stdin=pubkey)
WHEN admin creates group
@@ -288,7 +288,7 @@ WHEN admin creates group
if vars['groups'] is None:
vars['groups'] = []
vars['groups'].append(group)
- helper.gitano(None, 'group add {} Test group'.format(group))
+ gitano(None, 'group add {} Test group'.format(group))
WHEN admin adds user to group
-----------------------------------------------------------------------------
@@ -296,7 +296,7 @@ WHEN admin adds user to group
IMPLEMENTS WHEN admin adds (\S+) to (\S+)
user = get_next_match()
group = get_next_match()
- output = helper.gitano(
+ gitano(
None, 'group adduser {} {}'.format(group, user))
WHEN admin created repository
@@ -308,7 +308,7 @@ WHEN admin created repository
vars['repositories'] = []
vars['repositories'].append(repo)
- helper.gitano(None, 'create {}'.format(repo))
+ gitano(None, 'create {}'.format(repo))
# Make a commit in master in the repo, push that.
user = 'admin'
@@ -330,7 +330,7 @@ WHEN admin sets repository config
repo = get_next_match()
key = get_next_match()
value = get_next_match()
- helper.gitano(None, 'config {} set {} {}'.format(repo, key, value))
+ gitano(None, 'config {} set {} {}'.format(repo, key, value))
THEN a user can clone a repository
-----------------------------------------------------------------------------
@@ -464,7 +464,7 @@ FINALLY clean up anything created during tests
def iter(var, prefix):
items = vars[var] or []
for item in items:
- helper.gitano_confirm_with_token(prefix, item)
+ gitano_confirm_with_token(prefix, item)
iter('users', 'user del')
iter('groups', 'group del')
iter('repositories', 'destroy')
diff --git a/lib.py b/lib.py
index f1e0850..4982e32 100644
--- a/lib.py
+++ b/lib.py
@@ -12,3 +12,34 @@ srcdir = os.environ['SRCDIR']
datadir = os.environ['DATADIR']
vars = Variables(datadir)
+
+
+
+def gitano(user, args, stdin=None):
+ server = os.environ['GITANO_SERVER']
+ kwargs = {
+ 'stderr': subprocess.STDOUT,
+ 'ssh_options': [
+ '-oPasswordAuthentication=no',
+ '-oIdentitiesOnly=yes',
+ '-i', self.get_user_ssh_key(user),
+ ],
+ }
+ if stdin is not None:
+ kwargs['feed_stdin'] = stdin
+ return cliapp.ssh_runcmd(
+ 'git@{}'.format(server),
+ args.split(),
+ **kwargs)
+
+
+
+def gitano_confirm_with_token(prefix, which):
+ try:
+ output = gitano(None, '{} {}'.format(prefix, which))
+ except cliapp.AppException:
+ pass
+ else:
+ last_line = output.splitlines()[-1]
+ token = last_line.split()[-1]
+ gitano(None, '{} {} {}'.format(prefix, which, token))
diff --git a/yarnhelper.py b/yarnhelper.py
index 4cd729a..fa67a3c 100644
--- a/yarnhelper.py
+++ b/yarnhelper.py
@@ -185,33 +185,6 @@ class YarnHelper(object):
else:
return self.ssh_key_file_for_user(user)
- def gitano(self, user, args, stdin=None): # pragma: no cover
- server = os.environ['GITANO_SERVER']
- kwargs = {
- 'stderr': subprocess.STDOUT,
- 'ssh_options': [
- '-oPasswordAuthentication=no',
- '-oIdentitiesOnly=yes',
- '-i', self.get_user_ssh_key(user),
- ],
- }
- if stdin is not None:
- kwargs['feed_stdin'] = stdin
- return cliapp.ssh_runcmd(
- 'git@{}'.format(server),
- args.split(),
- **kwargs)
-
- def gitano_confirm_with_token(self, prefix, which): # pragma: no cover
- try:
- output = self.gitano(None, '{} {}'.format(prefix, which))
- except cliapp.AppException:
- pass
- else:
- last_line = output.splitlines()[-1]
- token = last_line.split()[-1]
- self.gitano(None, '{} {} {}'.format(prefix, which, token))
-
class Error(Exception):