# Copyright (c) 2013 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.

# TEST IS DISABLED UNTIL MIGRATED TO PYTHON 3.
# For instructions on how to: go/tauto-py3-migration
# To re-enable migrate to Python 3.
# If the test is not migrated by 1/14/22 it will be deleted.

AUTHOR = 'wiley, pstew, quiche'
NAME = 'network_WiFi_HiddenRemains'
TIME = 'SHORT'
TEST_TYPE = 'Server'
ATTRIBUTES = ''
DEPENDENCIES = 'wificell'

DOC = """
This test verifies that shill continues to remember that a network is
hidden after associating with it.
"""


def run(machine):
    host = hosts.create_host(machine)
    job.run_test('network_WiFi_HiddenRemains',
                 tag=NAME,
                 host=host,
                 raw_cmdline_args=args)


parallel_simple(run, machines)
