Example #1
0
    def test_kvp_strict(self):
        """ Add a testsuite. """
        parser = TestsuiteTestCase.parser_create()

        args = parser.parse_args("kvp add key1 value1.1".split())
        self.assertTrue(args.func(args))

        args = parser.parse_args("kvp type key1 STRICT".split())
        self.assertTrue(args.func(args))

        with self.assertRaises(KVP.DoesNotExist):
            KVP.get_or_create("key1", "value1.2")
Example #2
0
    def test_kvp_strict(self):
        """ Add a testsuite. """
        parser = TestsuiteTestCase.parser_create()

        args = parser.parse_args("kvp add key1 value1.1".split())
        self.assertTrue(args.func(args))

        args = parser.parse_args("kvp type key1 STRICT".split())
        self.assertTrue(args.func(args))

        with self.assertRaises(KVP.DoesNotExist):
            KVP.get_or_create("key1", "value1.2")
Example #3
0
def get_or_create(productname, branchname, order=-1):
    """ Get or create a testplan in a certain order.

    @param product_name Is the name of the product
    @param order order is the location of the testplan in the list of
                 testplans. The order effects the location the testplan
                 appears on web pages.
    """
    from testdb.models import Product
    from testdb.models import KVP

    logging.info("adding product %s %s", productname, branchname)

    ##
    # Make sure to track branch and product against KVP. This is done
    # incase user decides to make these keys strict.
    KVP.get_or_create("branch", branchname)
    KVP.get_or_create("product", productname)

    if order == -1:
        find = Product.objects.filter(context__name=CONTEXT)
        try:
            order = find.order_by("-order")[0].order
        except IndexError:
            order = 0

        order += 1
        logging.info("using order %d", order)

    ##
    # Order is specified so now we have to move something.
    products = Product.objects.filter(context__name=CONTEXT,
                                      order__gte=order).order_by("order")
    current_order = order
    for product in products:
        if product.order == current_order:
            product.order += 1
            logging.debug("updating order %s to %d", productname,
                          product.order)
            product.save()
            current_order = product.order

    (product, created) = Product.get_or_create(CONTEXT, productname,
                                               branchname)
    product.order = order
    product.save()

    return (product, created)
Example #4
0
def get_or_create(productname, branchname, order=-1):
    """ Get or create a testplan in a certain order.

    @param product_name Is the name of the product
    @param order order is the location of the testplan in the list of
                 testplans. The order effects the location the testplan
                 appears on web pages.
    """
    from testdb.models import Product
    from testdb.models import KVP

    logging.info("adding product %s %s", productname, branchname)

    ##
    # Make sure to track branch and product against KVP. This is done
    # incase user decides to make these keys strict.
    KVP.get_or_create("branch", branchname)
    KVP.get_or_create("product", productname)

    if order == -1:
        find = Product.objects.filter(context__name=CONTEXT)
        try:
            order = find.order_by("-order")[0].order
        except IndexError:
            order = 0

        order += 1
        logging.info("using order %d", order)

    ##
    # Order is specified so now we have to move something.
    products = Product.objects.filter(context__name=CONTEXT,
                                      order__gte=order).order_by("order")
    current_order = order
    for product in products:
        if product.order == current_order:
            product.order += 1
            logging.debug("updating order %s to %d", productname,
                          product.order)
            product.save()
            current_order = product.order

    (product, created) = Product.get_or_create(CONTEXT, productname,
                                               branchname)
    product.order = order
    product.save()

    return (product, created)
Example #5
0
def add_key(context, order, key, value):
    """ Add a key into the testplan. """

    from testdb.models import Testplan
    from testdb.models import Testsuite
    from testdb.models import Key
    from testdb.models import KVP

    logging.info("add %s=%s to testsuite %s %s", key, value, context, order)

    context = Testplan.context_get(context)
    testplan = Testplan.objects.get(context=context)
    planorder = testplan.testplanorder_set.get(order=order)
    testsuite = Testsuite.objects.get(context=context, testplanorder=planorder)
    (testkey, _) = KVP.get_or_create(key=key, value=value)
    testsuite.key_change(testkey)

    ##
    #

    (key, _) = Key.objects.get_or_create(value=key)
    testplan.testplankvp_set.get_or_create(key=key)

    #
    ##
    return (testsuite, testkey)
Example #6
0
def add_key(context, order, key, value):
    """ Add a key into the testplan. """

    from testdb.models import Testplan
    from testdb.models import Testsuite
    from testdb.models import Key
    from testdb.models import KVP

    logging.info("add %s=%s to testsuite %s %s", key, value, context, order)

    context = Testplan.context_get(context)
    testplan = Testplan.objects.get(context=context)
    planorder = testplan.testplanorder_set.get(order=order)
    testsuite = Testsuite.objects.get(context=context, testplanorder=planorder)
    (testkey, _) = KVP.get_or_create(key=key, value=value)
    testsuite.key_change(testkey)

    ##
    #

    (key, _) = Key.objects.get_or_create(value=key)
    testplan.testplankvp_set.get_or_create(key=key)

    #
    ##
    return (testsuite, testkey)