Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit4fe1894

Browse files
OsOperations::get_file_size(self, filename) is added
It is a function to get a size of file.
1 parent88371d1 commit4fe1894

File tree

5 files changed

+114
-0
lines changed

5 files changed

+114
-0
lines changed

‎testgres/operations/local_ops.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,11 @@ def isfile(self, remote_file):
325325
defisdir(self,dirname):
326326
returnos.path.isdir(dirname)
327327

328+
defget_file_size(self,filename):
329+
assertfilenameisnotNone
330+
asserttype(filename)==str# noqa: E721
331+
returnos.path.getsize(filename)
332+
328333
defremove_file(self,filename):
329334
returnos.remove(filename)
330335

‎testgres/operations/os_ops.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,9 @@ def read_binary(self, filename, start_pos):
107107
defisfile(self,remote_file):
108108
raiseNotImplementedError()
109109

110+
defget_file_size(self,filename):
111+
raiseNotImplementedError()
112+
110113
# Processes control
111114
defkill(self,pid,signal):
112115
# Kill the process

‎testgres/operations/remote_ops.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,70 @@ def isdir(self, dirname):
360360
response=self.exec_command(cmd)
361361
returnresponse.strip()==b"True"
362362

363+
defget_file_size(self,filename):
364+
C_ERR_SRC="RemoteOpertions::get_file_size"
365+
366+
assertfilenameisnotNone
367+
asserttype(filename)==str# noqa: E721
368+
cmd="du -b "+__class__._escape_path(filename)
369+
370+
s=self.exec_command(cmd,encoding=get_default_encoding())
371+
asserttype(s)==str# noqa: E721
372+
373+
iflen(s)==0:
374+
raiseException(
375+
"[BUG CHECK] Can't get size of file [{2}]. Remote operation returned an empty string. Check point [{0}][{1}].".format(
376+
C_ERR_SRC,
377+
"#001",
378+
filename
379+
)
380+
)
381+
382+
i=0
383+
384+
whilei<len(s)ands[i].isdigit():
385+
asserts[i]>='0'
386+
asserts[i]<='9'
387+
i+=1
388+
389+
ifi==0:
390+
raiseException(
391+
"[BUG CHECK] Can't get size of file [{2}]. Remote operation returned a bad formatted string. Check point [{0}][{1}].".format(
392+
C_ERR_SRC,
393+
"#002",
394+
filename
395+
)
396+
)
397+
398+
ifi==len(s):
399+
raiseException(
400+
"[BUG CHECK] Can't get size of file [{2}]. Remote operation returned a bad formatted string. Check point [{0}][{1}].".format(
401+
C_ERR_SRC,
402+
"#003",
403+
filename
404+
)
405+
)
406+
407+
ifnots[i].isspace():
408+
raiseException(
409+
"[BUG CHECK] Can't get size of file [{2}]. Remote operation returned a bad formatted string. Check point [{0}][{1}].".format(
410+
C_ERR_SRC,
411+
"#004",
412+
filename
413+
)
414+
)
415+
416+
r=0
417+
418+
fori2inrange(0,i):
419+
ch=s[i2]
420+
assertch>='0'
421+
assertch<='9'
422+
# Here is needed to check overflow or that it is a human-valid result?
423+
r= (r*10)+ord(ch)-ord('0')
424+
425+
returnr
426+
363427
defremove_file(self,filename):
364428
cmd="rm {}".format(filename)
365429
returnself.exec_command(cmd)

‎tests/test_local.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,3 +97,24 @@ def test_read_binary__spec__unk_file(self):
9797

9898
withpytest.raises(FileNotFoundError,match=re.escape("[Errno 2] No such file or directory: '/dummy'")):
9999
self.operations.read_binary("/dummy",0)
100+
101+
deftest_get_file_size(self):
102+
"""
103+
Test LocalOperations::get_file_size.
104+
"""
105+
filename=__file__# current file
106+
107+
sz0=os.path.getsize(filename)
108+
asserttype(sz0)==int# noqa: E721
109+
110+
sz1=self.operations.get_file_size(filename)
111+
asserttype(sz1)==int# noqa: E721
112+
assertsz1==sz0
113+
114+
deftest_get_file_size__unk_file(self):
115+
"""
116+
Test LocalOperations::get_file_size.
117+
"""
118+
119+
withpytest.raises(FileNotFoundError,match=re.escape("[Errno 2] No such file or directory: '/dummy'")):
120+
self.operations.get_file_size("/dummy")

‎tests/test_remote.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,27 @@ def test_read_binary__spec__unk_file(self):
224224
withpytest.raises(ExecUtilException,match=re.escape("tail: cannot open '/dummy' for reading: No such file or directory")):
225225
self.operations.read_binary("/dummy",0)
226226

227+
deftest_get_file_size(self):
228+
"""
229+
Test LocalOperations::get_file_size.
230+
"""
231+
filename=__file__# current file
232+
233+
sz0=os.path.getsize(filename)
234+
asserttype(sz0)==int# noqa: E721
235+
236+
sz1=self.operations.get_file_size(filename)
237+
asserttype(sz1)==int# noqa: E721
238+
assertsz1==sz0
239+
240+
deftest_get_file_size__unk_file(self):
241+
"""
242+
Test LocalOperations::get_file_size.
243+
"""
244+
245+
withpytest.raises(ExecUtilException,match=re.escape("du: cannot access '/dummy': No such file or directory")):
246+
self.operations.get_file_size("/dummy")
247+
227248
deftest_touch(self):
228249
"""
229250
Test touch for creating a new file or updating access and modification times of an existing file.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp