On Wed, Mar 19, 2014 at 10:25 AM, Michele Tartara <[email protected]>wrote:

> On Wed, Mar 19, 2014 at 9:55 AM, Hrvoje Ribicic <[email protected]> wrote:
> > To explicitly specify the order of patches executed, the QA provides an
> > "order" file. It can contain names of patches that will be executed
> > first, and in the order listed, before all the other patches that still
> > follow an alphabetical order.
> >
> > Signed-off-by: Hrvoje Ribicic <[email protected]>
> > ---
> >  qa/patch/order  |  0
> >  qa/qa_config.py | 24 +++++++++++++++++++++++-
> >  2 files changed, 23 insertions(+), 1 deletion(-)
> >  create mode 100644 qa/patch/order
> >
> > diff --git a/qa/patch/order b/qa/patch/order
> > new file mode 100644
> > index 0000000..e69de29
> > diff --git a/qa/qa_config.py b/qa/qa_config.py
> > index 0340883..3798483 100644
> > --- a/qa/qa_config.py
> > +++ b/qa/qa_config.py
> > @@ -45,6 +45,7 @@ _ENABLED_DISK_TEMPLATES_KEY = "enabled-disk-templates"
> >  _QA_BASE_PATH = os.path.dirname(__file__)
> >  _QA_DEFAULT_PATCH = "qa-patch.json"
> >  _QA_PATCH_DIR = "patch"
> > +_QA_PATCH_ORDER_FILE = "order"
> >
> >  #: QA configuration (L{_QaConfig})
> >  _config = None
> > @@ -311,10 +312,31 @@ class _QaConfig(object):
> >      @return: The modified configuration data.
> >
> >      """
> > +    ordered_patches = []
> > +    order_path = os.path.join(_QA_BASE_PATH, _QA_PATCH_DIR,
> > +                              _QA_PATCH_ORDER_FILE)
> > +    if os.path.exists(order_path):
> > +      order_file = open(order_path, 'r')
> > +      ordered_patches = order_file.read().splitlines()
> > +      ordered_patches = filter(None, ordered_patches)
>
> It's not entirely clear to me what this line is doing. Is it removing
> empty lines from the "order" file?
>

Yes, passing None to the filter function in Python makes the filter use the
identity function.

If there is not a better way of doing this, I will simply place a comment
as to not confuse anyone?


>
> > +
> > +    # Add the patch dir
> > +    ordered_patches = map(lambda x: os.path.join(_QA_PATCH_DIR, x),
> > +                          ordered_patches)
> > +
> > +    # First the ordered patches
> > +    for patch in ordered_patches:
> > +      if patch not in patches:
> > +        raise qa_error.Error("Patch %s specified in the ordering file
> does not "
> > +                             "exist" % patch)
> > +      data = patch_module.apply_patch(data, patches[patch])
> > +
> > +    # Then the other non-default ones
> >      for patch in sorted(patches):
> > -      if patch != _QA_DEFAULT_PATCH:
> > +      if patch != _QA_DEFAULT_PATCH and patch not in ordered_patches:
> >          data = patch_module.apply_patch(data, patches[patch])
> >
> > +    # Finally the default one
> >      if _QA_DEFAULT_PATCH in patches:
> >        data = patch_module.apply_patch(data, patches[_QA_DEFAULT_PATCH])
> >
> > --
> > 1.9.0.279.gdc9e3eb
> >
>
> Rest LGTM, thanks.
>
> Cheers,
> Michele
>
> --
> Google Germany GmbH
> Dienerstr. 12
> 80331 München
>
> Registergericht und -nummer: Hamburg, HRB 86891
> Sitz der Gesellschaft: Hamburg
> Geschäftsführer: Graham Law, Christine Elizabeth Flores
>

Reply via email to