blob: a04281f529ca4e48148e577a08f1272dfcaa1840 [file] [log] [blame]
# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from skylab_staging import test_push
EXAMPLE_TEST_RESULTS = [
('dummy_PassServer', 'GOOD'),
('dummy_Pass.bluetooth', 'GOOD'),
('dummy_Fail.Fail', 'FAIL'),
('dummy_Pass.actionable', 'GOOD'),
('dummy_Pass', 'GOOD'),
('dummy_Fail.Error', 'ERROR'),
('dummy_Fail.Fail', 'FAIL'),
('dummy_Fail.Warn', 'WARN'),
('dummy_Fail.NAError', 'TEST_NA'),
('dummy_Fail.Crash', 'GOOD'),
('login_LoginSuccess', 'GOOD'),
('dummy_Fail.Error', 'ERROR'),
('provision_AutoUpdate.double', 'GOOD'),
]
def _construct_test_views_list():
return [{'test_name':r[0], 'status':r[1]} for r in EXAMPLE_TEST_RESULTS]
def test_successful_test_push():
"""Test a successfully passed test push."""
available_views = _construct_test_views_list()
summary = test_push._verify_and_summarize(available_views,
test_push._EXPECTED_TEST_RESULTS)
assert len(summary) == 0
def test_failing_test():
"""Test a test push with a failed test."""
available_views = _construct_test_views_list()
for v in available_views:
if v['test_name'] == 'dummy_Pass':
v['status'] = 'Fail'
summary = test_push._verify_and_summarize(available_views,
test_push._EXPECTED_TEST_RESULTS)
assert len(summary) != 0
assert 'dummy_Pass' in summary[1]
def test_missing_test():
"""Test a test push with a missing test."""
available_views = _construct_test_views_list()
for v in available_views:
if v['test_name'] == 'login_LoginSuccess':
available_views.remove(v)
summary = test_push._verify_and_summarize(available_views,
test_push._EXPECTED_TEST_RESULTS)
assert len(summary) != 0
assert 'login_LoginSuccess' in summary[1]