All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Aníbal Limón" <anibal.limon@linux.intel.com>
To: yocto@yoctoproject.org
Cc: richard.purdie@intel.com, benjamin.esquivel@intel.com
Subject: [[PATCH][qa-tools] 07/16] ts/toaster/helpers.py: Add new class ToasterHelper instead functions.
Date: Tue,  9 Feb 2016 16:43:16 -0600	[thread overview]
Message-ID: <1455057798-3213-8-git-send-email-anibal.limon@linux.intel.com> (raw)
In-Reply-To: <1455057798-3213-1-git-send-email-anibal.limon@linux.intel.com>

In order to provide a better interface add a ToasterHelper class the
functionality is the same so only modified functions to match method
definitions.

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
---
 tests/toaster/helpers.py | 62 ++++++++++++++++++++++++++----------------------
 1 file changed, 34 insertions(+), 28 deletions(-)

diff --git a/tests/toaster/helpers.py b/tests/toaster/helpers.py
index 5e54723..98b65e0 100644
--- a/tests/toaster/helpers.py
+++ b/tests/toaster/helpers.py
@@ -37,37 +37,43 @@ def _check_output1(*popenargs, **kwargs):
         raise subprocess.CalledProcessError(retcode, cmd, output=output)
     return output
 
-def _execute_command(directory, cmd):
-    return _check_output1([SHELL_CMD, "-c", "cd %s; %s" % \
-        (directory, cmd)], stderr=subprocess.STDOUT)
+class ToasterHelper(object):
+    def __init__(self, directory, repo, repo_ref='master'):
+        self.directory = directory
+        self.repo = repo
+        self.repo_ref = repo_ref
 
-def _execute_command_venv(directory, venv, cmd):
-    return _execute_command(directory, "source %s/%s/bin/activate; %s" % \
-        (directory, venv, cmd))
+    def _execute_command(self, cmd):
+        return _check_output1([SHELL_CMD, "-c", "cd %s; %s" % \
+            (self.directory, cmd)], stderr=subprocess.STDOUT)
 
-def toaster_clone(directory, repo, ref='master', rm=False):
-    if os.path.exists(directory):
-        if rm:
-            shutil.rmtree(directory)
-        else:
-            raise IOError
+    def _execute_command_venv(self, venv, cmd):
+        return self._execute_command("source %s/%s/bin/activate; %s"\
+                % (self.directory, venv, cmd))
 
-    subprocess.check_output([SHELL_CMD, "-c", "git clone %s %s" % \
-        (repo, directory)], stderr=subprocess.STDOUT)
-    _execute_command(directory, "git checkout %s -b %s" % \
-        (ref, TOASTER_TEST_BRANCH))
+    def clone(self, rm=False):
+        if os.path.exists(self.directory):
+            if rm:
+                shutil.rmtree(self.directory)
+            else:
+                raise IOError
 
-def toaster_setup(directory):
-    _execute_command(directory, "virtualenv %s" % VENV_NAME)
-    _execute_command_venv(directory, VENV_NAME, "pip install -r" \
-        " bitbake/toaster-requirements.txt")
+        subprocess.check_output([SHELL_CMD, "-c", "git clone %s %s" % \
+            (self.repo, self.directory)], stderr=subprocess.STDOUT)
+        self._execute_command("git checkout %s -b %s" % \
+            (self.repo_ref, TOASTER_TEST_BRANCH))
 
-def toaster_start(directory):
-    return _execute_command_venv(directory, VENV_NAME,
-        "source %s/oe-init-build-env; source %s/bitbake/bin/toaster start" % \
-        (directory, directory))
+    def setup(self):
+        self._execute_command("virtualenv %s" % VENV_NAME)
+        self._execute_command_venv(VENV_NAME, "pip install -r" \
+            " bitbake/toaster-requirements.txt")
 
-def toaster_stop(directory):
-    return _execute_command_venv(directory, VENV_NAME,
-        "source %s/oe-init-build-env; source %s/bitbake/bin/toaster stop" % \
-        (directory, directory))
+    def start(self):
+        return self._execute_command_venv(VENV_NAME,
+            "source %s/oe-init-build-env; source %s/bitbake/bin/toaster start" % \
+            (self.directory, self.directory))
+
+    def stop(self):
+        return self._execute_command_venv(VENV_NAME,
+            "source %s/oe-init-build-env; source %s/bitbake/bin/toaster stop" % \
+            (self.directory, self.directory))
-- 
2.1.4



  parent reply	other threads:[~2016-02-09 22:41 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-09 22:43 [[PATCH][qa-tools] 00/16] Add Toaster test suite support Aníbal Limón
2016-02-09 22:43 ` [[PATCH][qa-tools] 01/16] README.md: Update instructions on how install host deps on debian Aníbal Limón
2016-02-09 22:43 ` [[PATCH][qa-tools] 02/16] utils/run/toaster.sh: Get rid of toaster shell script Aníbal Limón
2016-02-09 22:43 ` [[PATCH][qa-tools] 03/16] toaster: Add helpers for clone, setup, start and stop Aníbal Limón
2016-02-09 22:43 ` [[PATCH][qa-tools] 04/16] tests/toaster/__init__.py: Add support for clone/setup/start/stop Aníbal Limón
2016-02-09 22:43 ` [[PATCH][qa-tools] 05/16] tests/toaster/helpers.py: When execute bash remove interactive mode Aníbal Limón
2016-02-09 22:43 ` [[PATCH][qa-tools] 06/16] tests/toaster/helpers.py: Fix toaster_start deadlocks Aníbal Limón
2016-02-09 22:43 ` Aníbal Limón [this message]
2016-02-09 22:43 ` [[PATCH][qa-tools] 08/16] toaster/helper.py: Add force mode to stop method Aníbal Limón
2016-02-09 22:43 ` [[PATCH][qa-tools] 09/16] toaster/__init__.py: Update toaster test to match new ToasterHelper Aníbal Limón

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1455057798-3213-8-git-send-email-anibal.limon@linux.intel.com \
    --to=anibal.limon@linux.intel.com \
    --cc=benjamin.esquivel@intel.com \
    --cc=richard.purdie@intel.com \
    --cc=yocto@yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.