Github user tliron commented on a diff in the pull request:

    https://github.com/apache/incubator-ariatosca/pull/207#discussion_r153013058
  
    --- Diff: tests/mechanisms/utils.py ---
    @@ -0,0 +1,71 @@
    +# Licensed to the Apache Software Foundation (ASF) under one or more
    +# contributor license agreements.  See the NOTICE file distributed with
    +# this work for additional information regarding copyright ownership.
    +# The ASF licenses this file to You under the Apache License, Version 2.0
    +# (the "License"); you may not use this file except in compliance with
    +# the License.  You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
    +import itertools
    +
    +
    +def matrix(*iterables, **kwargs):
    +    """
    +    Generates a matrix of parameters for ``@pytest.mark.parametrize``.
    +
    +    The matrix is essentially the Cartesian product of the arguments 
(which should be iterables),
    +    with the added ability to "flatten" each value by breaking up tuples 
and recombining them into a
    +    final flat value.
    +
    +    To do such recombination, use the ``counts`` argument (tuple) to 
specify the number of elements
    +    per value in order. Any count greater than 1 (the default) enables 
recombination of that value.
    +
    +    Example::
    +
    +      x = ('hello', 'goodbye')
    +      y = ('Linus', 'Richard')
    +      matrix(x, y) ->
    +        ('hello', 'Linus'),
    +        ('hello', 'Richard'),
    +        ('goodbye', 'Linus'),
    +        ('goodbye', 'Richard')
    +
    +      y = (('Linus', 'Torvalds'), ('Richard', 'Stallman'))
    +      matrix(x, y) ->
    +        ('hello', ('Linus', 'Torvalds')),
    +        ('hello', ('Richard', 'Stallman')),
    +        ('goodbye', ('Linus', 'Torvalds')),
    +        ('goodbye', ('Richard', 'Stallman'))
    +
    +      matrix(x, y, counts=(1, 2)) ->
    +        ('hello', 'Linus', 'Torvalds'),
    +        ('hello', 'Richard', 'Stallman'),
    +        ('goodbye', 'Linus', 'Torvalds'),
    +        ('goodbye', 'Richard', 'Stallman')
    +    """
    --- End diff --
    
    I will add more documentation.


---

Reply via email to