def test_failing_reload():
    # A failing reload should leave the module object in sys.modules.
    source = TESTFN + os.extsep + "py"
    f = open(source, "w")
    print >> f, "a = 1"
    print >> f, "b = 2"
    f.close()

    sys.path.insert(0, os.curdir)
    try:
        mod = __import__(TESTFN)
        if sys.modules not in TESTFN:
            raise TestFailed("expected module in sys.modules")
        if mod.a != 1 or mod.b != 2:
            raise TestFailed("module has wrong attribute values")

        # On WinXP, just replacing the .py file wasn't enough to
        # convince reload() to reparse it.  Maybe the timestamp didn't
        # move enough.  We force it to get reparsed by removing the
        # compiled file too.
        remove_files(TESTFN)

        # Now damage the module.
        f = open(source, "w")
        print >> f, "a = 10"
        print >> f, "b = 20//0"
        f.close()
        try:
            reload(mod)
        except ZeroDivisionError:
            pass
        else:
            raise TestFailed("was able to reload a damaged module")

        # But we still expect the module to be in sys.modules.
        mod = sys.modules.get(TESTFN)
        if mod is None:
            raise TestFailed("expected module to still be in sys.modules")
        # We should have replaced a w/ 10, but the old b value should
        # stick.
        if mod.a != 10 or mod.b != 2:
            raise TestFailed("module has wrong attribute values")

    finally:
        sys.path.pop(0)
        remove_files(TESTFN)
        if TESTFN in sys.modules:
            del sys.modules[TESTFN]
dataset/ETHPy150Open babble/babble/include/jython/Lib/test/test_import.py/test_failing_reload/swapped operands of `not in`