#!/usr/bin/env python

#
# 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.
#

from common import *

load_module_arg = None

if AMQP_LIB is not None:
    load_module_arg = "--load-module {0}".format(AMQP_LIB)

acl_file = join(BUILD_DIR, "src", "tests", "policy.acl")
acl_file_arg = "--acl-file {0}".format(acl_file)

port = start_broker("broker", load_module_arg, acl_file_arg)

# Native python tests

run_broker_tests(port, "-m qpid_tests.broker_0_10 -m qpid.tests")

# Swigged python tests

python_swig_module = join(BUILD_DIR, "bindings", "qpid", "python", "qpid_messaging.py")

if exists(python_swig_module):
    failing_tests = join(BUILD_DIR, "src", "tests", "failing-amqp0-10-python-tests")

    ENV["QPID_USE_SWIG_CLIENT"] = "1"

    run_broker_tests(port, 
                     "-m qpid.tests.messaging.message",
                     "-m qpid_tests.broker_0_10.priority",
                     "-m qpid_tests.broker_0_10.lvq",
                     "-m qpid_tests.broker_0_10.new_api",
                     "-I {0}".format(failing_tests))

    if AMQP_LIB is not None:
        failing_tests = join(BUILD_DIR, "src", "tests", "failing-amqp1.0-python-tests")

        run_broker_tests(port,
                         "--define=\"protocol_version=amqp1.0\"",
                         "--define=\"policy_file={0}\"".format(acl_file),
                         "-m qpid_tests.broker_1_0",
                         "-m qpid_tests.broker_0_10.new_api",
                         "-m assertions -m reject_release -m misc -m policies -m acl_1",
                         "-I {0}".format(failing_tests))
else:
    warn("Skipping tests for swigged python client: swigged module not found")
    
check_results()
