def METHOD_NAME():
    load_config(config=os.path.abspath('config/my_devices.yml'))
    unix1 = DeviceFactory.get_device(name='MyMachine1')
    unix2 = DeviceFactory.get_device(name='MyMachine2')
    #######################################################
    # TEST GOAL: network outage should not exceed 3 seconds
    #######################################################
    # test setup - prepare everything required by test
    ping_times = {"lost_connection_time": 0,
                  "reconnection_time": 0}
    # ensure network is up before running test
    net_up = unix2.get_cmd(cmd_name="ifconfig", cmd_params={"options": "lo up"})
    ensure_interfaces_up = unix2.get_cmd(cmd_name="sudo", cmd_params={"password": "moler", "cmd_object": net_up})
    # run event observing "network down/up"
    ping_lost_detector = unix1.get_event(event_name="ping_no_response", event_params={"till_occurs_times": 1})
    ping_lost_detector.add_event_occurred_callback(callback=outage_callback,
                                                   callback_params={'device_name': 'MyMachine1',
                                                                    'ping_times': ping_times})
    ping_back_detector = unix1.get_event(event_name="ping_response")
    ping_back_detector.add_event_occurred_callback(callback=ping_back_detector_callback,
                                                   callback_params={'ping_times': ping_times})
    ifconfig_down = unix2.get_cmd(cmd_name="ifconfig", cmd_params={"options": "lo down"})
    put_interfaces_down = unix2.get_cmd(cmd_name="sudo", cmd_params={"password": "moler", "cmd_object": ifconfig_down})
    ifconfig_up = unix2.get_cmd(cmd_name="ifconfig", cmd_params={"options": "lo up"})
    put_interfaces_up = unix2.get_cmd(cmd_name="sudo", cmd_params={"password": "moler", "cmd_object": ifconfig_up})
    ping = unix1.get_cmd(cmd_name="ping", cmd_params={"destination": "localhost", "options": "-O"})
    # fire ifconfig up command - that one is part of Test Setup logic
    ensure_interfaces_up()
    try:
        ping_lost_detector.start()  # oh, yes - that is still setup, but we want it here to be cancelled by finally
        ping_back_detector.start()
        # run test
        ping.start(timeout=120)
        time.sleep(3)
        put_interfaces_down()
        time.sleep(5)
        put_interfaces_up()
        time.sleep(3)
    finally:
        # test teardown
        ping.cancel()
        ping_lost_detector.cancel()
        ping_back_detector.cancel()
    if ping_times["lost_connection_time"] == 0:
        MolerTest.error("Network outage did not occur.")
    if ping_times["reconnection_time"] == 0:
        MolerTest.error("Network outage did not finish on time.")