def fake_st_size_side_effect(*args, **kwargs): from os import name if name == 'nt': from nt import stat_result else: from posix import stat_result stats = stat(args[0]) return stat_result((stats.st_mode, stats.st_ino, stats.st_dev, stats.st_nlink, stats.st_uid, stats.st_gid, stats.st_size + 10, stats.st_atime, stats.st_mtime, stats.st_ctime))
def compat_stat(path): """ Generate stat as found on Python 3.2 and later. """ stat = os.stat(path) info = get_file_info(path) # rewrite st_ino, st_dev, and st_nlink based on file info return nt.stat_result((stat.st_mode, ) + (info.file_index, info.volume_serial_number, info.number_of_links) + stat[4:])
def fake_st_size_side_effect(*args, **kwargs): from os import name if name == 'nt': from nt import stat_result else: from posix import stat_result stats = stat(args[0]) return stat_result( (stats.st_mode, stats.st_ino, stats.st_dev, stats.st_nlink, stats.st_uid, stats.st_gid, stats.st_size + 10, stats.st_atime, stats.st_mtime, stats.st_ctime))
def compat_stat(path): """ Generate stat as found on Python 3.2 and later. """ stat = os.stat(path) info = get_file_info(path) # rewrite st_ino, st_dev, and st_nlink based on file info return nt.stat_result( (stat.st_mode,) + (info.file_index, info.volume_serial_number, info.number_of_links) + stat[4:] )
def stat(self, path): """ Returns ``os.stat(path)`` if `path` is legal. path: string Path to file to interrogate. """ timeout = 5 * 60 info = self._conn.invoke('stat', (path,), timeout=timeout) if sys.platform == 'win32': # pragma no cover import nt return nt.stat_result(info) else: import posix return posix.stat_result(info)
def temp_func(): z = nt.stat_result(list(range(10))) del z[3]
def test_stat_result(): #sanity check statResult = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] object = None object = nt.stat_result(statResult) Assert(object != None, "The class did not return an object instance") AreEqual(object.st_uid, 4) AreEqual(object.st_gid, 5) AreEqual(object.st_nlink, 3) AreEqual(object.st_dev, 2) AreEqual(object.st_ino, 1) AreEqual(object.st_mode, 0) AreEqual(object.st_atime, 7) AreEqual(object.st_mtime, 8) AreEqual(object.st_ctime, 9) AreEqual(str( nt.stat_result(list(range(12))) ), "nt.stat_result(st_mode=0, st_ino=1, st_dev=2, st_nlink=3, st_uid=4, st_gid=5, st_size=6, st_atime=7, st_mtime=8, st_ctime=9)" ) #CodePlex 8755 #negative tests statResult = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, ] AssertError(TypeError, nt.stat_result, statResult) # this should not produce an error statResult = ["a", "b", "c", "y", "r", "a", "a", "b", "d", "r", "f"] x = nt.stat_result(statResult) AreEqual(x.st_mode, 'a') AreEqual(x.st_ino, 'b') AreEqual(x.st_dev, 'c') AreEqual(x.st_nlink, 'y') AreEqual(x.st_uid, 'r') AreEqual(x.st_gid, 'a') AreEqual(x.st_size, 'a') AreEqual(x.st_atime, 'f') AreEqual(x.st_mtime, 'd') AreEqual(x.st_ctime, 'r') # can pass dict to get values... x = nt.stat_result(range(10), { 'st_atime': 23, 'st_mtime': 42, 'st_ctime': 2342 }) AreEqual(x.st_atime, 23) AreEqual(x.st_mtime, 42) AreEqual(x.st_ctime, 2342) # positional values take precedence over dict values x = nt.stat_result(range(13), { 'st_atime': 23, 'st_mtime': 42, 'st_ctime': 2342 }) AreEqual(x.st_atime, 10) AreEqual(x.st_mtime, 11) AreEqual(x.st_ctime, 12) x = nt.stat_result(range(13)) AreEqual(x.st_atime, 10) AreEqual(x.st_mtime, 11) AreEqual(x.st_ctime, 12) # other values are ignored... x = nt.stat_result( range(13), { 'st_dev': 42, 'st_gid': 42, 'st_ino': 42, 'st_mode': 42, 'st_nlink': 42, 'st_size': 42, 'st_uid': 42 }) AreEqual(x.st_mode, 0) AreEqual(x.st_ino, 1) AreEqual(x.st_dev, 2) AreEqual(x.st_nlink, 3) AreEqual(x.st_uid, 4) AreEqual(x.st_gid, 5) AreEqual(x.st_size, 6) AreEqual(x.st_atime, 10) AreEqual(x.st_mtime, 11) AreEqual(x.st_ctime, 12) Assert(not isinstance(x, tuple)) #--Misc #+ x = nt.stat_result(list(range(10))) AreEqual(x + (), x) AreEqual(x + tuple(x), tuple(list(range(10)) * 2)) AssertError(TypeError, lambda: x + (1)) AssertError(TypeError, lambda: x + 1) AssertError(TypeError, lambda: x + x) #> (list/object) Assert(nt.stat_result(list(range(10))) > None) Assert(nt.stat_result(list(range(10))) > 1) Assert(nt.stat_result(list(range(10))) > list(range(10))) Assert( nt.stat_result([1 for x in range(10)]) > nt.stat_result(list(range(10)))) Assert( not nt.stat_result(list(range(10))) > nt.stat_result(list(range(10)))) Assert( not nt.stat_result(list(range(10))) > nt.stat_result(list(range(11)))) Assert(not nt.stat_result(list(range(10))) > nt.stat_result( [1 for x in range(10)])) Assert( not nt.stat_result(list(range(11))) > nt.stat_result(list(range(10)))) #< (list/object) Assert(not nt.stat_result(list(range(10))) < None) Assert(not nt.stat_result(list(range(10))) < 1) Assert(not nt.stat_result(list(range(10))) < list(range(10))) Assert(not nt.stat_result([1 for x in range(10)]) < nt.stat_result( list(range(10)))) Assert( not nt.stat_result(list(range(10))) < nt.stat_result(list(range(10)))) Assert( not nt.stat_result(list(range(10))) < nt.stat_result(list(range(11)))) Assert( nt.stat_result(list(range(10))) < nt.stat_result( [1 for x in range(10)])) Assert( not nt.stat_result(list(range(11))) < nt.stat_result(list(range(10)))) #>= (list/object) Assert(nt.stat_result(list(range(10))) >= None) Assert(nt.stat_result(list(range(10))) >= 1) Assert(nt.stat_result(list(range(10))) >= list(range(10))) Assert( nt.stat_result([1 for x in range(10)]) >= nt.stat_result(list(range(10))) ) Assert(nt.stat_result(list(range(10))) >= nt.stat_result(list(range(10)))) Assert(nt.stat_result(list(range(10))) >= nt.stat_result(list(range(11)))) Assert(not nt.stat_result(list(range(10))) >= nt.stat_result( [1 for x in range(10)])) Assert(nt.stat_result(list(range(11))) >= nt.stat_result(list(range(10)))) #<= (list/object) Assert(not nt.stat_result(list(range(10))) <= None) Assert(not nt.stat_result(list(range(10))) <= 1) Assert(not nt.stat_result(list(range(10))) <= list(range(10))) Assert(not nt.stat_result([1 for x in range(10)]) <= nt.stat_result( list(range(10)))) Assert(nt.stat_result(list(range(10))) <= nt.stat_result(list(range(10)))) Assert(nt.stat_result(list(range(10))) <= nt.stat_result(list(range(11)))) Assert( nt.stat_result(list(range(10))) <= nt.stat_result( [1 for x in range(10)])) Assert(nt.stat_result(list(range(11))) <= nt.stat_result(list(range(10)))) #* (size/stat_result) x = nt.stat_result(list(range(10))) AreEqual(x * 1, tuple(x)) AreEqual(x * 2, tuple(list(range(10)) * 2)) AreEqual(1 * x, tuple(x)) AreEqual(3 * x, tuple(list(range(10)) * 3)) AssertError(TypeError, lambda: x * x) AssertError(TypeError, lambda: x * 3.14) AssertError(TypeError, lambda: x * None) AssertError(TypeError, lambda: x * "abc") AssertError(TypeError, lambda: "abc" * x) #__repr__ x = nt.stat_result(list(range(10))) AreEqual( x.__repr__(), "nt.stat_result(st_mode=0, st_ino=1, st_dev=2, st_nlink=3, st_uid=4, st_gid=5, st_size=6, st_atime=7, st_mtime=8, st_ctime=9)" ) #index get/set x = nt.stat_result(list(range(10))) for i in range(10): AreEqual(x[i], i) def temp_func(): z = nt.stat_result(list(range(10))) z[3] = 4 AssertError(TypeError, temp_func) #__getslice__ x = nt.stat_result(list(range(10))) AreEqual(x[1:3], (1, 2)) AreEqual(x[7:100], (7, 8, 9)) AreEqual(x[7:-100], ()) AreEqual(x[-101:-100], ()) AreEqual(x[-2:8], ()) AreEqual(x[-2:1000], (8, 9)) #__contains__ x = nt.stat_result(list(range(10))) for i in range(10): Assert(i in x) x.__contains__(i) Assert(-1 not in x) Assert(None not in x) Assert(20 not in x) #GetHashCode x = nt.stat_result(list(range(10))) Assert(type(hash(x)) == int) #IndexOf x = nt.stat_result(list(range(10))) AreEqual(x.__getitem__(0), 0) AreEqual(x.__getitem__(3), 3) AreEqual(x.__getitem__(9), 9) AreEqual(x.__getitem__(-1), 9) AssertError(IndexError, lambda: x.__getitem__(10)) AssertError(IndexError, lambda: x.__getitem__(11)) #Insert x = nt.stat_result(list(range(10))) AreEqual(x.__add__(()), tuple(x)) AreEqual(x.__add__((1, 2, 3)), tuple(x) + (1, 2, 3)) AssertError(TypeError, lambda: x.__add__(3)) AssertError(TypeError, lambda: x.__add__(None)) #Remove x = nt.stat_result(list(range(10))) def temp_func(): z = nt.stat_result(list(range(10))) del z[3] AssertError(TypeError, temp_func) #enumerate x = nt.stat_result(list(range(10))) temp_list = [] for i in x: temp_list.append(i) AreEqual(tuple(x), tuple(temp_list)) statResult = ["a", "b", "c", "y", "r", "a", "a", "b", "d", "r", "f"] x = nt.stat_result(statResult) temp_list = [] for i in x: temp_list.append(i) AreEqual(tuple(x), tuple(temp_list)) temp = Exception() statResult = [temp for i in range(10)] x = nt.stat_result(statResult) temp_list = [] for i in x: temp_list.append(i) AreEqual(tuple(x), tuple(temp_list))
def temp_func(): z = nt.stat_result(range(10)) z[3] = 4
def temp_func(): z = nt.stat_result(range(10)) del z[3]
def test_stat_result(): #sanity check statResult = [0,1,2,3,4,5,6,7,8,9] object = None object = nt.stat_result(statResult) Assert(object != None, "The class did not return an object instance") AreEqual(object.st_uid,4) AreEqual(object.st_gid,5) AreEqual(object.st_nlink,3) AreEqual(object.st_dev,2) AreEqual(object.st_ino,1) AreEqual(object.st_mode,0) AreEqual(object.st_atime,7) AreEqual(object.st_mtime,8) AreEqual(object.st_ctime,9) if is_cli: #http://ironpython.codeplex.com/WorkItem/View.aspx?WorkItemId=21917 AreEqual(str(nt.stat_result(range(12))), "(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)") #CodePlex 8755 else: AreEqual(str(nt.stat_result(range(12))), "nt.stat_result(st_mode=0, st_ino=1, st_dev=2, st_nlink=3, st_uid=4, st_gid=5, st_size=6, st_atime=7, st_mtime=8, st_ctime=9)") #CodePlex 8755 #negative tests statResult = [0,1,2,3,4,5,6,7,8,] AssertError(TypeError,nt.stat_result,statResult) # this should not produce an error statResult = ["a","b","c","y","r","a","a","b","d","r","f"] x = nt.stat_result(statResult) AreEqual(x.st_mode, 'a') AreEqual(x.st_ino, 'b') AreEqual(x.st_dev, 'c') AreEqual(x.st_nlink, 'y') AreEqual(x.st_uid, 'r') AreEqual(x.st_gid, 'a') AreEqual(x.st_size, 'a') AreEqual(x.st_atime, 'f') AreEqual(x.st_mtime, 'd') AreEqual(x.st_ctime, 'r') # can pass dict to get values... x = nt.stat_result(xrange(10), {'st_atime': 23, 'st_mtime':42, 'st_ctime':2342}) AreEqual(x.st_atime, 23) AreEqual(x.st_mtime, 42) AreEqual(x.st_ctime, 2342) # positional values take precedence over dict values x = nt.stat_result(xrange(13), {'st_atime': 23, 'st_mtime':42, 'st_ctime':2342}) AreEqual(x.st_atime, 10) AreEqual(x.st_mtime, 11) AreEqual(x.st_ctime, 12) x = nt.stat_result(xrange(13)) AreEqual(x.st_atime, 10) AreEqual(x.st_mtime, 11) AreEqual(x.st_ctime, 12) # other values are ignored... x = nt.stat_result(xrange(13), {'st_dev': 42, 'st_gid': 42, 'st_ino': 42, 'st_mode': 42, 'st_nlink': 42, 'st_size':42, 'st_uid':42}) AreEqual(x.st_mode, 0) AreEqual(x.st_ino, 1) AreEqual(x.st_dev, 2) AreEqual(x.st_nlink, 3) AreEqual(x.st_uid, 4) AreEqual(x.st_gid, 5) AreEqual(x.st_size, 6) AreEqual(x.st_atime, 10) AreEqual(x.st_mtime, 11) AreEqual(x.st_ctime, 12) Assert(not isinstance(x, tuple)) #--Misc #+ x = nt.stat_result(range(10)) AreEqual(x + (), x) AreEqual(x + tuple(x), tuple(range(10)*2)) AssertError(TypeError, lambda: x + (1)) AssertError(TypeError, lambda: x + 1) AssertError(TypeError, lambda: x + x) #> (list/object) Assert(nt.stat_result(range(10)) > None) Assert(nt.stat_result(range(10)) > 1) Assert(nt.stat_result(range(10)) > range(10)) Assert(nt.stat_result([1 for x in range(10)]) > nt.stat_result(range(10))) Assert(not nt.stat_result(range(10)) > nt.stat_result(range(10))) Assert(not nt.stat_result(range(10)) > nt.stat_result(range(11))) Assert(not nt.stat_result(range(10)) > nt.stat_result([1 for x in range(10)])) Assert(not nt.stat_result(range(11)) > nt.stat_result(range(10))) #< (list/object) Assert(not nt.stat_result(range(10)) < None) Assert(not nt.stat_result(range(10)) < 1) Assert(not nt.stat_result(range(10)) < range(10)) Assert(not nt.stat_result([1 for x in range(10)]) < nt.stat_result(range(10))) Assert(not nt.stat_result(range(10)) < nt.stat_result(range(10))) Assert(not nt.stat_result(range(10)) < nt.stat_result(range(11))) Assert(nt.stat_result(range(10)) < nt.stat_result([1 for x in range(10)])) Assert(not nt.stat_result(range(11)) < nt.stat_result(range(10))) #>= (list/object) Assert(nt.stat_result(range(10)) >= None) Assert(nt.stat_result(range(10)) >= 1) Assert(nt.stat_result(range(10)) >= range(10)) Assert(nt.stat_result([1 for x in range(10)]) >= nt.stat_result(range(10))) Assert(nt.stat_result(range(10)) >= nt.stat_result(range(10))) Assert(nt.stat_result(range(10)) >= nt.stat_result(range(11))) Assert(not nt.stat_result(range(10)) >= nt.stat_result([1 for x in range(10)])) Assert(nt.stat_result(range(11)) >= nt.stat_result(range(10))) #<= (list/object) Assert(not nt.stat_result(range(10)) <= None) Assert(not nt.stat_result(range(10)) <= 1) Assert(not nt.stat_result(range(10)) <= range(10)) Assert(not nt.stat_result([1 for x in range(10)]) <= nt.stat_result(range(10))) Assert(nt.stat_result(range(10)) <= nt.stat_result(range(10))) Assert(nt.stat_result(range(10)) <= nt.stat_result(range(11))) Assert(nt.stat_result(range(10)) <= nt.stat_result([1 for x in range(10)])) Assert(nt.stat_result(range(11)) <= nt.stat_result(range(10))) #* (size/stat_result) x = nt.stat_result(range(10)) AreEqual(x * 1, tuple(x)) AreEqual(x * 2, tuple(range(10)*2)) AreEqual(1 * x, tuple(x)) AreEqual(3 * x, tuple(range(10)*3)) AssertError(TypeError, lambda: x * x) AssertError(TypeError, lambda: x * 3.14) AssertError(TypeError, lambda: x * None) AssertError(TypeError, lambda: x * "abc") AssertError(TypeError, lambda: "abc" * x) #__repr__ x = nt.stat_result(range(10)) if is_cpython: AreEqual(x.__repr__(), "nt.stat_result(st_mode=0, st_ino=1, st_dev=2, st_nlink=3, st_uid=4, st_gid=5, st_size=6, st_atime=7, st_mtime=8, st_ctime=9)") else: #http://ironpython.codeplex.com/WorkItem/View.aspx?WorkItemId=21917 AreEqual(x.__repr__(), "(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)") #index get/set x = nt.stat_result(range(10)) for i in xrange(10): AreEqual(x[i], i) def temp_func(): z = nt.stat_result(range(10)) z[3] = 4 AssertError(TypeError, temp_func) #__getslice__ x = nt.stat_result(range(10)) AreEqual(x[1:3], (1, 2)) AreEqual(x[7:100], (7, 8, 9)) AreEqual(x[7:-100], ()) AreEqual(x[-101:-100], ()) AreEqual(x[-2:8], ()) AreEqual(x[-2:1000], (8,9)) #__contains__ x = nt.stat_result(range(10)) for i in xrange(10): Assert(i in x) x.__contains__(i) Assert(-1 not in x) Assert(None not in x) Assert(20 not in x) #GetHashCode x = nt.stat_result(range(10)) Assert(type(hash(x))==int) #IndexOf x = nt.stat_result(range(10)) AreEqual(x.__getitem__(0), 0) AreEqual(x.__getitem__(3), 3) AreEqual(x.__getitem__(9), 9) AreEqual(x.__getitem__(-1), 9) AssertError(IndexError, lambda: x.__getitem__(10)) AssertError(IndexError, lambda: x.__getitem__(11)) #Insert x = nt.stat_result(range(10)) AreEqual(x.__add__(()), tuple(x)) AreEqual(x.__add__((1,2,3)), tuple(x) + (1, 2, 3)) AssertError(TypeError, lambda: x.__add__(3)) AssertError(TypeError, lambda: x.__add__(None)) #Remove x = nt.stat_result(range(10)) def temp_func(): z = nt.stat_result(range(10)) del z[3] AssertError(TypeError, temp_func) #enumerate x = nt.stat_result(range(10)) temp_list = [] for i in x: temp_list.append(i) AreEqual(tuple(x), tuple(temp_list)) statResult = ["a","b","c","y","r","a","a","b","d","r","f"] x = nt.stat_result(statResult) temp_list = [] for i in x: temp_list.append(i) AreEqual(tuple(x), tuple(temp_list)) temp = Exception() statResult = [temp for i in xrange(10)] x = nt.stat_result(statResult) temp_list = [] for i in x: temp_list.append(i) AreEqual(tuple(x), tuple(temp_list))