import traceback from wizard import tests from wizard.util import * lockfile = tests.getTestFile("util_test.lock") class MyError(Exception): def __str__(self): return """ ERROR: Foo """ class MyErrorWithHTML(Exception): def __str__(self): return """ ERROR: Bar No good! """ def test_dictmap(): assert dictmap(lambda x: x + 1, {'a': 0, 'b': 1}) == {'a': 1, 'b': 2} def test_get_dir_uid(): if os.getuid(): return # only run if on a scripts server. This is crude assert get_dir_uid("/mit/ezyang/web_scripts/test-wiki") == 537864399 def test_get_dir_uid_locker(): if os.getuid(): return assert get_dir_uid("/mit/apo/web_scripts/") == 536956980 def test_get_exception_name(): try: raise NotImplementedError except NotImplementedError: assert get_exception_name(traceback.format_exc()) == "NotImplementedError" def test_get_exception_name_withstr(): try: raise MyError except MyError: assert get_exception_name(traceback.format_exc()) == "MyError" def test_get_exception_name_withhtml(): try: raise MyErrorWithHTML except MyErrorWithHTML: assert get_exception_name(traceback.format_exc()) == "MyErrorWithHTML" def test_get_exception_name_withstr2(): try: raise Exception("This is extra info we don't care about"); except Exception: assert get_exception_name(traceback.format_exc()) == "Exception" def test_lock(): soft_unlink(lockfile) with LockDirectory(lockfile): pass def test_locked(): soft_unlink(lockfile) with LockDirectory(lockfile): try: with LockDirectory(lockfile): assert False except DirectoryLockedError: pass def test_break_orphan_lock(): soft_unlink(lockfile) open(lockfile, "w").write("obviouslyboguspid") with LockDirectory(lockfile): pass def test_break_stale_lock(): soft_unlink(lockfile) with LockDirectory(lockfile): with LockDirectory(lockfile, expiry = 0): pass