#!/bin/bash

#
#    Copyright (c) 2016-2017 Nest Labs, Inc.
#    All rights reserved.
#
#    Licensed 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.
#

#
# Manually run happy WdmNext tests
#

python test_weave_wdm_next_one_way_subscribe_01.py
python test_weave_wdm_next_one_way_subscribe_02.py
python test_weave_wdm_next_one_way_subscribe_03.py
python test_weave_wdm_next_one_way_subscribe_04.py
python test_weave_wdm_next_one_way_subscribe_05.py
python test_weave_wdm_next_one_way_subscribe_06.py
python test_weave_wdm_next_one_way_subscribe_07.py
python test_weave_wdm_next_one_way_subscribe_08.py
python test_weave_wdm_next_one_way_subscribe_09.py
python test_weave_wdm_next_one_way_subscribe_10.py
python test_weave_wdm_next_one_way_subscribe_11.py
python test_weave_wdm_next_one_way_subscribe_12.py
python test_weave_wdm_next_one_way_subscribe_13.py
python test_weave_wdm_next_mutual_subscribe_01.py
python test_weave_wdm_next_mutual_subscribe_02.py
python test_weave_wdm_next_mutual_subscribe_03.py
python test_weave_wdm_next_mutual_subscribe_04.py
python test_weave_wdm_next_mutual_subscribe_05.py
python test_weave_wdm_next_mutual_subscribe_06.py
python test_weave_wdm_next_mutual_subscribe_07.py
python test_weave_wdm_next_mutual_subscribe_08.py
python test_weave_wdm_next_mutual_subscribe_09.py
python test_weave_wdm_next_mutual_subscribe_10.py
python test_weave_wdm_next_mutual_subscribe_11.py
python test_weave_wdm_next_mutual_subscribe_12.py
python test_weave_wdm_next_mutual_subscribe_13.py
python test_weave_wdm_next_mutual_subscribe_14.py
python test_weave_wdm_next_mutual_subscribe_15.py
python test_weave_wdm_next_mutual_subscribe_16.py
python test_weave_wdm_next_mutual_subscribe_17.py
python test_weave_wdm_next_mutual_subscribe_18.py
python test_weave_wdm_next_mutual_subscribe_19.py
python test_weave_wdm_next_mutual_subscribe_20.py
python test_weave_wdm_next_mutual_subscribe_21.py
python test_weave_wdm_next_mutual_subscribe_22.py
python test_weave_wdm_next_mutual_subscribe_23.py
python test_weave_wdm_next_mutual_subscribe_24.py
python test_weave_wdm_next_mutual_subscribe_25.py
python test_weave_wdm_next_mutual_subscribe_26.py
python test_weave_wdm_next_mutual_subscribe_27.py
python test_weave_wdm_next_mutual_subscribe_28.py
python test_weave_wdm_next_mutual_subscribe_29.py
python test_weave_wdm_next_mutual_subscribe_30.py
python test_weave_wdm_next_mutual_subscribe_31.py
python test_weave_wdm_next_mutual_subscribe_32.py
python test_weave_wdm_next_mutual_subscribe_33.py
python test_weave_wdm_next_mutual_subscribe_34.py
python test_weave_wdm_next_mutual_subscribe_35.py
python test_weave_wdm_next_mutual_subscribe_36.py
python test_weave_wdm_next_mutual_subscribe_37.py
python test_weave_wdm_next_mutual_subscribe_38.py
python test_weave_wdm_next_mutual_subscribe_39.py
python test_weave_wdm_next_mutual_subscribe_40.py
python test_weave_wdm_next_mutual_subscribe_41.py
python test_weave_wdm_next_mutual_subscribe_42.py
python test_weave_wdm_next_mutual_subscribe_43.py
python test_weave_wdm_next_mutual_subscribe_44.py
python test_weave_wdm_next_mutual_subscribe_45.py
python test_weave_wdm_next_mutual_subscribe_46.py
