# Copyright 2018 The Chromium OS 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 autotest_lib.server import utils

AUTHOR = 'kathrelkeld'
NAME = 'policy_AUServer.AUDisabled.true'
TIME = 'SHORT'
TEST_CATEGORY = 'General'
TEST_CLASS = 'enterprise'
TEST_TYPE = 'server'
ATTRIBUTES = 'suite:ent-nightly, suite:policy'

DOC = """
Sets up and runs the client test for the DeviceAutoUpdateDisabled
policy.

"""
args_dict = utils.args_to_dict(args)
client_test = 'policy_DeviceAutoUpdateDisabled'
case = True

def run(machine):
    host = hosts.create_host(machine)
    job.run_test('policy_AUServer', host=host, client_test=client_test,
                 case=case, **args_dict)

parallel_simple(run, machines)
