Ejemplo n.º 1
0
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))
Ejemplo n.º 2
0
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:])
Ejemplo n.º 3
0
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))
Ejemplo n.º 4
0
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:]
	)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
 def temp_func():
     z = nt.stat_result(list(range(10)))
     del z[3]
Ejemplo n.º 7
0
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))
Ejemplo n.º 8
0
 def temp_func():
     z = nt.stat_result(range(10))
     z[3] = 4
Ejemplo n.º 9
0
 def temp_func():
     z = nt.stat_result(range(10))
     del z[3]
Ejemplo n.º 10
0
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))