From: "Aníbal Limón" <anibal.limon@linux.intel.com>
To: jose.perez.carranza@linux.intel.com, yocto@yoctoproject.org
Subject: Re: [PATCH] qa-tools: Add suport for current format of templates
Date: Thu, 16 Feb 2017 16:48:39 -0600 [thread overview]
Message-ID: <58A62C47.8090203@linux.intel.com> (raw)
In-Reply-To: <1487284628-8916-1-git-send-email-jose.perez.carranza@linux.intel.com>
[-- Attachment #1: Type: text/plain, Size: 10194 bytes --]
Resend it with [qa-tools] and see comments below,
On 02/16/2017 04:37 PM, jose.perez.carranza@linux.intel.com wrote:
> From: Jose Perez Carranza <jose.perez.carranza@linux.intel.com>
>
> Currently the tempates has a format as below:
>
> TRTEMP_<RELEASE>_<MANUAL/AUTO>_<COMPONENT>_<OPTIONAL>
>
> Hence the logic was adapted to follow above structure and also a
> commit paramater was added to follow the format of build as follows:
>
> RELEASE MILESTONE_rc#
>
> Signed-off-by: Jose Perez Carranza <jose.perez.carranza@linux.intel.com>
> ---
> testopia_update.py | 30 ++++++++++++++++------------
> testopia_update/product/__init__.py | 39 +++++++++++++++++++++----------------
> 2 files changed, 40 insertions(+), 29 deletions(-)
>
> diff --git a/testopia_update.py b/testopia_update.py
> index 249d163..af281c9 100755
> --- a/testopia_update.py
> +++ b/testopia_update.py
> @@ -15,7 +15,7 @@ DEFAULT_STORE_LOCATION = "/tmp/testopia_update"
>
> ACTIONS = ('create', 'update')
> BRANCHES = ('master', 'jethro', 'dizzy', 'daisy', 'noexists')
> -CATEGORIES = ('Full pass', 'Weekly')
> +CATEGORIES = ('AUTO', 'MANUAL')
>
> class Options(object):
> pass
> @@ -60,6 +60,9 @@ def get_args():
> parser.add_argument('--project-date', required=False,
> dest="project_date", help='SCM version/revision date of the project.')
>
> + parser.add_argument('--commit', required=False,
> + dest="commit", help='Poky commit')
> +
> parser.add_argument('--results-log', required=False,
> dest="results_log", help='Results log.')
>
> @@ -68,6 +71,7 @@ def get_args():
> parser.add_argument('--debug', required=False, action="store_true",
> dest="debug", default=False, help='Enable debug mode.')
>
> +
> return parser.parse_args()
>
> if __name__ == '__main__':
> @@ -86,8 +90,8 @@ if __name__ == '__main__':
> testopia_config = ['url', 'username', 'password', 'store_location']
> testopia_opts = testopia_config + ['action', 'product_name', 'category_name',
> 'project_version', 'project_milestone', 'project_revision',
> - 'project_date']
> -
> + 'project_date','commit']
We already have a commit as a name of project-revision if you want to
change the template name order use this field.
> +
> config = None
> if not args.config and os.path.exists(DEFAULT_CONFIG_FILE):
> args.config = DEFAULT_CONFIG_FILE
> @@ -103,10 +107,10 @@ if __name__ == '__main__':
> arg = getattr(args, to)
> if arg:
> setattr(opts, to, arg)
> - if not hasattr(opts, to):
> - logger.error("%s: Requires testopia %s in arguments or config." % \
> - (sys.argv[0], to))
> - sys.exit(1)
> +# if not hasattr(opts, to):
> +# logger.error("%s: Requires testopia %s in arguments or config." % \
> +# (sys.argv[0], to))
> +# sys.exit(1)
Uncomment these lines, there uis a need to make --list-products as an
option without action but this needs to be made in other commit.
alimon
>
> if not os.path.exists(opts.store_location):
> os.makedirs(opts.store_location)
> @@ -155,11 +159,13 @@ if __name__ == '__main__':
> sys.exit(1)
>
> build = product.get_build(test_plan, args.project_version,
> - args.project_milestone, args.project_revision, args.project_date)
> + args.project_milestone, args.project_revision, args.project_date,
> + args.commit)
> if not build:
> if args.action == "create":
> build = product.create_build(test_plan, args.project_version,
> - args.project_milestone, args.project_revision, args.project_date)
> + args.project_milestone, args.project_revision, args.project_date,
> + args.commit)
> logger.info("%s: Create build for product %s with: "\
> "%s, %s, %s, %s." % (sys.argv[0], args.product_name,
> args.project_version, args.project_milestone,
> @@ -172,8 +178,8 @@ if __name__ == '__main__':
> sys.exit(1)
>
> if args.action == "create":
> - template_test_run = product.get_template_test_run(test_plan, args.project_version,
> - args.category_name, args.optional)
> + template_test_run = product.get_template_test_run(test_plan,
> + args.project_version, args.category_name, args.optional)
> if not template_test_run:
> logger.error("%s: Product %s can't find test run with: "\
> "%s, %s, %s." % (sys.argv[0], args.product_name,
> @@ -189,7 +195,7 @@ if __name__ == '__main__':
> args.optional))
> sys.exit(1)
> logger.info("%s: Test run was created with Template (%d), Summary (%s)"\
> - " and ID (%s)." % (sys.argv[0], template_test_run['run_id'],
> + " and ID (%s)." % (sys.argv[0], template_test_run['run_id'],
> test_run['summary'], test_run['run_id']))
> elif args.action == "update":
> if not args.results_log:
> diff --git a/testopia_update/product/__init__.py b/testopia_update/product/__init__.py
> index 04f9dac..02c6447 100644
> --- a/testopia_update/product/__init__.py
> +++ b/testopia_update/product/__init__.py
> @@ -1,5 +1,6 @@
> import re
>
> +
> class Product(object):
> def __init__(self, testopia, opts, logger, config):
> self.testopia = testopia
> @@ -42,13 +43,15 @@ class Product(object):
> tp_envs = self.testopia.product_get_environments(tp['product_id'])
> return [tp_env['name'] for tp_env in tp_envs]
>
> - def _format_build_name(self, project_version, project_revision):
> - return "%s: %s" % (project_version, project_revision)
> + def _format_build_name(self, project_version, project_revision, project_commit):
> + return "%s_%s: %s" % (project_version, project_revision, project_commit)
>
> - def get_build(self, tp, project_version, project_milestone,
> - project_revision, project_date):
> + def get_build(self, tp, project_version, project_milestone, project_revision,
> + project_date, project_commit):
> builds = self.testopia.product_get_builds(tp['product_id'])
> - build_name = self._format_build_name(project_milestone, project_revision)
> + build_name = self._format_build_name(project_milestone, project_revision,
> + project_commit)
> + exit
> for b in builds:
> if build_name == b['name'] and project_date == b['description'] \
> and project_milestone == str(b['milestone']):
> @@ -56,8 +59,9 @@ class Product(object):
> return None
>
> def create_build(self, tp, project_version, project_milestone,
> - project_revision, project_date):
> - build_name = self._format_build_name(project_milestone, project_revision)
> + project_revision, project_date, project_commit):
> + build_name = self._format_build_name(project_milestone, project_revision,
> + project_commit)
>
> return self.testopia.build_create(build_name, tp['product_id'],
> description=project_date, milestone=project_milestone,
> @@ -66,14 +70,14 @@ class Product(object):
> def _get_test_run_summary_alternatives(self, ttype, project_version,
> category_name, optional):
> summary_alts = []
> - summary_alts.append('%s - %s - %s - %s' % (ttype, self.name,
> - project_version, category_name))
> - summary_alts.append('%s - %s - %s' % (ttype, project_version,
> + summary_alts.append('%s_%s_%s_%s' % (ttype, project_version,
> + category_name, self.name))
> + summary_alts.append('%s_%s_%s' % (ttype, project_version,
> category_name))
> - summary_alts.append('%s - %s' % (ttype, category_name))
> - if optional:
> + summary_alts.append('%s_%s' % (ttype, category_name))
> + if optional:
> for idx, sa in enumerate(summary_alts):
> - summary_alts[idx] = sa + " - %s" % optional
> + summary_alts[idx] = sa + "_%s" % optional
> return summary_alts
>
> def get_template_test_run(self, tp, project_version, category_name,
> @@ -85,7 +89,7 @@ class Product(object):
> first match of summary in test runs.
> """
>
> - summary_alts = self._get_test_run_summary_alternatives("TEMPLATE",
> + summary_alts = self._get_test_run_summary_alternatives("TRTEMP",
> project_version, category_name, optional)
> tp_test_runs = self.testopia.testplan_get_test_runs(tp['plan_id'])
>
> @@ -100,7 +104,7 @@ class Product(object):
>
> def get_test_run(self, tp, env, build, project_date, project_version,
> category_name, optional):
> - summary_alts = self._get_test_run_summary_alternatives(project_date,
> + summary_alts = self._get_test_run_summary_alternatives(project_date,
> project_version, category_name, optional)
> tp_test_runs = self.testopia.testplan_get_test_runs(tp['plan_id'])
>
> @@ -133,8 +137,9 @@ class Product(object):
>
> return project_version
>
> - def create_test_run(self, tp, env, build, template_tr, project_version, project_date):
> - summary = template_tr['summary'].replace('TEMPLATE', project_date)
> + def create_test_run(self, tp, env, build, template_tr, project_version,
> + project_date):
> + summary = template_tr['summary'].replace('TRTEMP', project_date)
>
> test_case_ids = self._get_test_case_ids(template_tr)
> new_test_run = self.testopia.testrun_create(build['build_id'],
>
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
prev parent reply other threads:[~2017-02-16 22:45 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-16 22:37 [PATCH] qa-tools: Add suport for current format of templates jose.perez.carranza
2017-02-16 22:48 ` Aníbal Limón [this message]
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=58A62C47.8090203@linux.intel.com \
--to=anibal.limon@linux.intel.com \
--cc=jose.perez.carranza@linux.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.