示例#1
0
    def check_add_function_ordered(self):
        clear_temp_catalog()
        q = catalog.catalog()
        import string

        q.add_function('f',string.upper)
        q.add_function('f',string.lower)
        q.add_function('ff',string.find)
        q.add_function('ff',string.replace)
        q.add_function('fff',string.atof)
        q.add_function('fff',string.atoi)
        del q

        # now we're gonna make a new catalog with same code
        # but different functions in a specified module directory
        env_dir = empty_temp_dir()
        r = catalog.catalog(env_dir)
        r.add_function('ff',os.abort)
        r.add_function('ff',os.chdir)
        r.add_function('fff',os.access)
        r.add_function('fff',os.open)
        del r
        # now we're gonna make a new catalog with same code
        # but different functions in a user specified directory
        user_dir = empty_temp_dir()
        s = catalog.catalog(user_dir)
        import re
        s.add_function('fff',re.match)
        s.add_function('fff',re.purge)
        del s

        # open new catalog and make sure it retreives the functions
        # from d catalog instead of the temp catalog (made by q)
        os.environ['PYTHONCOMPILED'] = env_dir
        t = catalog.catalog(user_dir)
        funcs1 = t.get_functions('f')
        funcs2 = t.get_functions('ff')
        funcs3 = t.get_functions('fff')
        restore_temp_catalog()
        # make sure everything is read back in the correct order
        # a little cheating... I'm ignoring any functions that might have
        # been read in from a prior catalog file (such as the defualt one).
        # the test should really be made so that these aren't read in, but
        # until I get this figured out...
        #assert(funcs1 == [string.lower,string.upper])
        #assert(funcs2 == [os.chdir,os.abort,string.replace,string.find])
        #assert(funcs3 == [re.purge,re.match,os.open,
        #                  os.access,string.atoi,string.atof])
        assert(funcs1[:2] == [string.lower,string.upper]),`funcs1`
        assert(funcs2[:4] == [os.chdir,os.abort,string.replace,string.find])
        assert(funcs3[:6] == [re.purge,re.match,os.open,
                          os.access,string.atoi,string.atof])
        cleanup_temp_dir(user_dir)
        cleanup_temp_dir(env_dir)
示例#2
0
 def test_get_existing_files2(self):
     # Shouldn't get a single file from the temp dir.
     backup_dir = clear_temp_catalog()
     q = catalog.catalog()
     # create a dummy file
     q.add_function("code", os.getpid)
     del q
     q = catalog.catalog()
     files = q.get_existing_files()
     restore_temp_catalog(backup_dir)
     assert_(len(files) == 1)
示例#3
0
 def test_get_existing_files2(self):
     # Shouldn't get a single file from the temp dir.
     backup_dir = clear_temp_catalog()
     q = catalog.catalog()
     # create a dummy file
     q.add_function('code', os.getpid)
     del q
     q = catalog.catalog()
     files = q.get_existing_files()
     restore_temp_catalog(backup_dir)
     assert_(len(files) == 1)
示例#4
0
    def test_add_function_ordered(self):
        backup_dir = clear_temp_catalog()
        q = catalog.catalog()

        q.add_function('f', str.upper)
        q.add_function('f', str.lower)
        q.add_function('ff', str.find)
        q.add_function('ff', str.replace)
        q.add_function('fff', float)
        q.add_function('fff', int)
        del q

        # now we're gonna make a new catalog with same code
        # but different functions in a specified module directory
        env_dir = empty_temp_dir()
        r = catalog.catalog(env_dir)
        r.add_function('ff', os.abort)
        r.add_function('ff', os.chdir)
        r.add_function('fff', os.access)
        r.add_function('fff', os.open)
        del r
        # now we're gonna make a new catalog with same code
        # but different functions in a user specified directory
        user_dir = empty_temp_dir()
        s = catalog.catalog(user_dir)
        s.add_function('fff', re.match)
        s.add_function('fff', re.purge)
        del s

        # open new catalog and make sure it retreives the functions
        # from d catalog instead of the temp catalog (made by q)
        os.environ['PYTHONCOMPILED'] = env_dir
        t = catalog.catalog(user_dir)
        funcs1 = t.get_functions('f')
        funcs2 = t.get_functions('ff')
        funcs3 = t.get_functions('fff')
        restore_temp_catalog(backup_dir)
        # make sure everything is read back in the correct order
        # a little cheating... I'm ignoring any functions that might have
        # been read in from a prior catalog file (such as the defualt one).
        # the test should really be made so that these aren't read in, but
        # until I get this figured out...
        #assert_(funcs1 == [string.lower,string.upper])
        #assert_(funcs2 == [os.chdir,os.abort,string.replace,string.find])
        #assert_(funcs3 == [re.purge,re.match,os.open,
        #                  os.access,string.atoi,string.atof])
        assert_(funcs1[:2] == [str.lower, str.upper]), repr(funcs1)
        assert_(funcs2[:4] == [os.chdir, os.abort, str.replace, str.find])
        assert_(
            funcs3[:6] == [re.purge, re.match, os.open, os.access, int, float])
        cleanup_temp_dir(user_dir)
        cleanup_temp_dir(env_dir)
示例#5
0
 def check_get_existing_files2(self):
     """ Shouldn't get a single file from the temp dir.
     """
     clear_temp_catalog()
     q = catalog.catalog()
     # create a dummy file
     import os
     q.add_function('code', os.getpid)
     del q
     q = catalog.catalog()
     files = q.get_existing_files()
     restore_temp_catalog()
     assert(len(files) == 1)
示例#6
0
 def check_get_environ_path(self):
     if sys.platform == 'win32': sep = ';'
     else: sep = ':'
     os.environ['PYTHONCOMPILED'] = sep.join(('path1','path2','path3'))
     q = catalog.catalog()
     path = q.get_environ_path()
     assert(path == ['path1','path2','path3'])
示例#7
0
 def check_build_search_order1(self):
     """ MODULE in search path should be replaced by module_dir.
     """
     q = catalog.catalog(['first','MODULE','third'])
     q.set_module_directory('second')
     order = q.build_search_order()
     assert(order == ['first','second','third',catalog.default_dir()])
示例#8
0
 def check_build_search_order3(self):
     """ If MODULE is absent, module_dir shouldn't be in search path.
     """
     q = catalog.catalog(['first','second'])
     q.set_module_directory('third')
     order = q.build_search_order()
     assert(order == ['first','second',catalog.default_dir()])
示例#9
0
 def check_catalog_files2(self):
     """ Ignore bad paths in the path.
     """
     q = catalog.catalog()
     os.environ['PYTHONCOMPILED'] = '_some_bad_path_'
     files = q.get_catalog_files()
     assert(len(files) == 1)
示例#10
0
 def test_clear_module_directory(self):
     q = catalog.catalog()
     r = q.get_module_directory()
     assert_(r is None)
     q.set_module_directory("bob")
     r = q.clear_module_directory()
     assert_(r is None)
示例#11
0
 def test_get_existing_files1(self):
     # Shouldn't get any files when temp doesn't exist and no path set.
     backup_dir = clear_temp_catalog()
     q = catalog.catalog()
     files = q.get_existing_files()
     restore_temp_catalog(backup_dir)
     assert_(len(files) == 0)
示例#12
0
 def test_clear_module_directory(self):
     q = catalog.catalog()
     r = q.get_module_directory()
     assert_(r is None)
     q.set_module_directory('bob')
     r = q.clear_module_directory()
     assert_(r is None)
示例#13
0
 def test_get_existing_files1(self):
     # Shouldn't get any files when temp doesn't exist and no path set.
     backup_dir = clear_temp_catalog()
     q = catalog.catalog()
     files = q.get_existing_files()
     restore_temp_catalog(backup_dir)
     assert_(len(files) == 0)
示例#14
0
 def check_clear_module_directory(self):
     q = catalog.catalog()
     r = q.get_module_directory()
     assert (r is None)
     q.set_module_directory('bob')
     r = q.clear_module_directory()
     assert (r is None)
示例#15
0
 def check_get_existing_files1(self):
     """ Shouldn't get any files when temp doesn't exist and no path set.
     """
     clear_temp_catalog()
     q = catalog.catalog()
     files = q.get_existing_files()
     restore_temp_catalog()
     assert(len(files) == 0)
示例#16
0
 def test_get_environ_path(self):
     if sys.platform == "win32":
         sep = ";"
     else:
         sep = ":"
     os.environ["PYTHONCOMPILED"] = sep.join(("path1", "path2", "path3"))
     q = catalog.catalog()
     path = q.get_environ_path()
     assert_(path == ["path1", "path2", "path3"])
示例#17
0
 def test_get_environ_path(self):
     if sys.platform == 'win32':
         sep = ';'
     else:
         sep = ':'
     os.environ['PYTHONCOMPILED'] = sep.join(('path1', 'path2', 'path3'))
     q = catalog.catalog()
     path = q.get_environ_path()
     assert_(path == ['path1', 'path2', 'path3'])
示例#18
0
 def check_build_search_order4(self):
     """ Make sure environment variable is getting used.
     """
     q = catalog.catalog(['first','second'])
     if sys.platform == 'win32': sep = ';'
     else: sep = ':'
     os.environ['PYTHONCOMPILED'] = sep.join(('MODULE','fourth','fifth'))
     q.set_module_directory('third')
     order = q.build_search_order()
     assert(order == ['first','second','third','fourth','fifth',catalog.default_dir()])
示例#19
0
 def test_access_writable_file(self):
     # There should always be a writable file -- even if it is in temp
     q = catalog.catalog()
     file = q.get_writable_file()
     try:
         f = open(file, "w")
         f.write("bob")
     finally:
         f.close()
         os.remove(file)
示例#20
0
 def test_access_writable_file(self):
     # There should always be a writable file -- even if it is in temp
     q = catalog.catalog()
     file = q.get_writable_file()
     try:
         f = open(file, 'w')
         f.write('bob')
     finally:
         f.close()
         os.remove(file)
示例#21
0
 def test_writable_dir(self):
     # Check that we can create a file in the writable directory
     q = catalog.catalog()
     d = q.get_writable_dir()
     file = os.path.join(d, "some_silly_file")
     try:
         f = open(file, "w")
         f.write("bob")
     finally:
         f.close()
         os.remove(file)
示例#22
0
 def test_writable_dir(self):
     # Check that we can create a file in the writable directory
     q = catalog.catalog()
     d = q.get_writable_dir()
     file = os.path.join(d, 'some_silly_file')
     try:
         f = open(file, 'w')
         f.write('bob')
     finally:
         f.close()
         os.remove(file)
示例#23
0
 def test_build_search_order4(self):
     # Make sure environment variable is getting used.
     q = catalog.catalog(["first", "second"])
     if sys.platform == "win32":
         sep = ";"
     else:
         sep = ":"
     os.environ["PYTHONCOMPILED"] = sep.join(("MODULE", "fourth", "fifth"))
     q.set_module_directory("third")
     order = q.build_search_order()
     assert_(order == ["first", "second", "third", "fourth", "fifth", catalog.default_dir()])
示例#24
0
 def test_build_search_order4(self):
     # Make sure environment variable is getting used.
     q = catalog.catalog(['first','second'])
     if sys.platform == 'win32':
         sep = ';'
     else:
         sep = ':'
     os.environ['PYTHONCOMPILED'] = sep.join(('MODULE','fourth','fifth'))
     q.set_module_directory('third')
     order = q.build_search_order()
     assert_(order == ['first','second','third','fourth','fifth',catalog.default_dir()])
示例#25
0
 def check_access_writable_file(self):
     """ There should always be a writable file -- even if it is in temp
     """
     q = catalog.catalog()
     file = q.get_writable_file()
     try:
         f = open(file,'w')
         f.write('bob')
     finally:
         f.close()
         os.remove(file)
示例#26
0
 def check_writable_dir(self):
     """ Check that we can create a file in the writable directory
     """
     q = catalog.catalog()
     d = q.get_writable_dir()
     file = os.path.join(d,'some_silly_file')
     try:
         f = open(file,'w')
         f.write('bob')
     finally:
         f.close()
         os.remove(file)
示例#27
0
 def test_add_function_persistent1(self):
     # Test persisting a function in the default catalog
     backup_dir = clear_temp_catalog()
     q = catalog.catalog()
     # just use some already available functions
     funcs = [string.upper, string.lower, string.find, string.replace]
     for i in funcs:
         q.add_function_persistent("code", i)
     pfuncs = q.get_cataloged_functions("code")
     # any way to clean modules???
     restore_temp_catalog(backup_dir)
     for i in funcs:
         assert_(i in pfuncs)
示例#28
0
 def test_add_function_persistent1(self):
     # Test persisting a function in the default catalog
     backup_dir = clear_temp_catalog()
     q = catalog.catalog()
     # just use some already available functions
     funcs = [str.upper, str.lower, str.find, str.replace]
     for i in funcs:
         q.add_function_persistent('code', i)
     pfuncs = q.get_cataloged_functions('code')
     # any way to clean modules???
     restore_temp_catalog(backup_dir)
     for i in funcs:
         assert_(i in pfuncs)
示例#29
0
 def check_add_function_persistent1(self):
     """ Test persisting a function in the default catalog
     """
     clear_temp_catalog()
     q = catalog.catalog()
     # just use some already available functions
     import string
     funcs = [string.upper, string.lower, string.find,string.replace]
     for i in funcs:
         q.add_function_persistent('code',i)
     pfuncs = q.get_cataloged_functions('code')
     # any way to clean modules???
     restore_temp_catalog()
     for i in funcs:
         assert(i in pfuncs)
示例#30
0
 def check_writable_with_bad_path(self):
     """ There should always be a writable file -- even if search paths contain
         bad values.
     """
     if sys.platform == 'win32': sep = ';'
     else: sep = ':'
     os.environ['PYTHONCOMPILED'] = sep.join(('_bad_path_name_'))
     q = catalog.catalog()
     file = q.get_writable_file()
     try:
         f = open(file,'w')
         f.write('bob')
     finally:
         f.close()
     os.remove(file)
示例#31
0
 def test_writable_with_bad_path(self):
     # There should always be a writable file -- even if search paths
     # contain bad values.
     if sys.platform == 'win32':
         sep = ';'
     else:
         sep = ':'
     os.environ['PYTHONCOMPILED'] = sep.join(('_bad_path_name_'))
     q = catalog.catalog()
     file = q.get_writable_file()
     try:
         f = open(file, 'w')
         f.write('bob')
     finally:
         f.close()
     os.remove(file)
示例#32
0
 def test_writable_with_bad_path(self):
     # There should always be a writable file -- even if search paths
     # contain bad values.
     if sys.platform == "win32":
         sep = ";"
     else:
         sep = ":"
     os.environ["PYTHONCOMPILED"] = sep.join(("_bad_path_name_"))
     q = catalog.catalog()
     file = q.get_writable_file()
     try:
         f = open(file, "w")
         f.write("bob")
     finally:
         f.close()
     os.remove(file)
示例#33
0
 def test_unique_module_name(self):
     # Check that we can create a file in the writable directory
     q = catalog.catalog()
     file = q.unique_module_name("bob")
     cfile1 = file + ".cpp"
     assert_(not os.path.exists(cfile1))
     # Make sure it is writable
     try:
         f = open(cfile1, "w")
         f.write("bob")
     finally:
         f.close()
     # try again with same code fragment -- should get unique name
     file = q.unique_module_name("bob")
     cfile2 = file + ".cpp"
     assert_(not os.path.exists(cfile2 + ".cpp"))
     os.remove(cfile1)
示例#34
0
 def test_unique_module_name(self):
     # Check that we can create a file in the writable directory
     q = catalog.catalog()
     file = q.unique_module_name('bob')
     cfile1 = file + '.cpp'
     assert_(not os.path.exists(cfile1))
     # Make sure it is writable
     try:
         f = open(cfile1, 'w')
         f.write('bob')
     finally:
         f.close()
     # try again with same code fragment -- should get unique name
     file = q.unique_module_name('bob')
     cfile2 = file + '.cpp'
     assert_(not os.path.exists(cfile2 + '.cpp'))
     os.remove(cfile1)
示例#35
0
 def check_unique_module_name(self):
     """ Check that we can create a file in the writable directory
     """
     q = catalog.catalog()
     file = q.unique_module_name('bob')
     cfile1 = file+'.cpp'
     assert(not os.path.exists(cfile1))
     #make sure it is writable
     try:
         f = open(cfile1,'w')
         f.write('bob')
     finally:
         f.close()
     # try again with same code fragment -- should get unique name
     file = q.unique_module_name('bob')
     cfile2 = file+'.cpp'
     assert(not os.path.exists(cfile2+'.cpp'))
     os.remove(cfile1)
示例#36
0
 def test_catalog_files1(self):
     # Be sure we get at least one file even without specifying the path.
     q = catalog.catalog()
     files = q.get_catalog_files()
     assert_(len(files) == 1)
示例#37
0
 def check_build_search_order2(self):
     """ MODULE in search path should be removed if module_dir==None.
     """
     q = catalog.catalog(['first','MODULE','third'])
     order = q.build_search_order()
     assert(order == ['first','third',catalog.default_dir()])
示例#38
0
 def check_catalog_files1(self):
     """ Be sure we get at least one file even without specifying the path.
     """
     q = catalog.catalog()
     files = q.get_catalog_files()
     assert(len(files) == 1)
示例#39
0
 def test_catalog_files2(self):
     # Ignore bad paths in the path.
     q = catalog.catalog()
     os.environ["PYTHONCOMPILED"] = "_some_bad_path_"
     files = q.get_catalog_files()
     assert_(len(files) == 1)
示例#40
0
 def test_build_search_order3(self):
     # If MODULE is absent, module_dir shouldn't be in search path.
     q = catalog.catalog(["first", "second"])
     q.set_module_directory("third")
     order = q.build_search_order()
     assert_(order == ["first", "second", catalog.default_dir()])
示例#41
0
 def test_catalog_files2(self):
     # Ignore bad paths in the path.
     q = catalog.catalog()
     os.environ['PYTHONCOMPILED'] = '_some_bad_path_'
     files = q.get_catalog_files()
     assert_(len(files) == 1)
示例#42
0
 def test_catalog_files1(self):
     # Be sure we get at least one file even without specifying the path.
     q = catalog.catalog()
     files = q.get_catalog_files()
     assert_(len(files) == 1)
示例#43
0
 def test_build_search_order3(self):
     # If MODULE is absent, module_dir shouldn't be in search path.
     q = catalog.catalog(['first', 'second'])
     q.set_module_directory('third')
     order = q.build_search_order()
     assert_(order == ['first', 'second', catalog.default_dir()])
示例#44
0
 def test_build_search_order2(self):
     # MODULE in search path should be removed if module_dir==None.
     q = catalog.catalog(['first', 'MODULE', 'third'])
     order = q.build_search_order()
     assert_(order == ['first', 'third', catalog.default_dir()])
示例#45
0
 def test_build_search_order1(self):
     # MODULE in search path should be replaced by module_dir.
     q = catalog.catalog(['first', 'MODULE', 'third'])
     q.set_module_directory('second')
     order = q.build_search_order()
     assert_(order == ['first', 'second', 'third', catalog.default_dir()])
示例#46
0
 def test_set_module_directory(self):
     q = catalog.catalog()
     q.set_module_directory('bob')
     r = q.get_module_directory()
     assert_(r == 'bob')
示例#47
0
 def check_set_module_directory(self):
     q = catalog.catalog()
     q.set_module_directory('bob')
     r = q.get_module_directory()
     assert (r == 'bob')