diff --git a/lib/cylc/dbstatecheck.py b/lib/cylc/dbstatecheck.py index 91a7e6690c0..6484803dd0f 100644 --- a/lib/cylc/dbstatecheck.py +++ b/lib/cylc/dbstatecheck.py @@ -107,7 +107,8 @@ def suite_state_query( res = [] for row in self.conn.execute(stmt, stmt_args): - res.append(list(row)) + if not all(v is None for v in row): + res.append(list(row)) return res diff --git a/tests/suite-state/07-message2.t b/tests/suite-state/07-message2.t new file mode 100755 index 00000000000..4310d394bd6 --- /dev/null +++ b/tests/suite-state/07-message2.t @@ -0,0 +1,35 @@ +#!/bin/bash +# THIS FILE IS PART OF THE CYLC SUITE ENGINE. +# Copyright (C) 2008-2017 NIWA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Test suite-state message query on a waiting task - GitHub #2440. + +. $(dirname $0)/test_header +set_test_number 4 + +install_suite $TEST_NAME_BASE $TEST_NAME_BASE + +run_ok ${TEST_NAME_BASE}-val cylc validate $SUITE_NAME + +suite_run_ok ${TEST_NAME_BASE}-run cylc run --debug $SUITE_NAME + +TEST_NAME=${TEST_NAME_BASE}-query +run_fail ${TEST_NAME} cylc suite-state \ + $SUITE_NAME -p 2013 -t foo --max-polls=1 -m "the quick brown fox" + +grep_ok "ERROR: condition not satisfied" ${TEST_NAME}.stderr + +purge_suite $SUITE_NAME diff --git a/tests/suite-state/07-message2/suite.rc b/tests/suite-state/07-message2/suite.rc new file mode 100755 index 00000000000..ba33c9ce9a4 --- /dev/null +++ b/tests/suite-state/07-message2/suite.rc @@ -0,0 +1,15 @@ +[cylc] + cycle point format = %Y +[scheduling] + initial cycle point = 2010 + final cycle point = 2012 + [[dependencies]] + [[[P1Y]]] + graph = "foo:x => bar" +[runtime] + [[foo]] + script = cylc message "the quick brown fox" + [[[outputs]]] + x = "the quick brown fox" + [[bar]] + script = true