1111import time
1212import unittest
1313import uuid
14+ import datetime
1415
1516try :
1617 from unittest import mock
@@ -144,7 +145,6 @@ def test_manager_with_host(self):
144145@mark .slow
145146@unittest .skipIf (platform .python_implementation () == "PyPy" , "ftp unreliable with PyPy" )
146147class TestFTPFS (FSTestCases , unittest .TestCase ):
147-
148148 user = "user"
149149 pasw = "1234"
150150
@@ -162,7 +162,7 @@ def setUpClass(cls):
162162 cls .server .shutdown_after = - 1
163163 cls .server .handler .authorizer = DummyAuthorizer ()
164164 cls .server .handler .authorizer .add_user (
165- cls .user , cls .pasw , cls ._temp_path , perm = "elradfmw "
165+ cls .user , cls .pasw , cls ._temp_path , perm = "elradfmwT "
166166 )
167167 cls .server .handler .authorizer .add_anonymous (cls ._temp_path )
168168 cls .server .start ()
@@ -223,6 +223,27 @@ def test_geturl(self):
223223 ),
224224 )
225225
226+ def test_setinfo (self ):
227+ # TODO: temporary test, since FSTestCases.test_setinfo is broken.
228+ self .fs .create ("bar" )
229+ time1 = time .mktime (datetime .datetime .now ().timetuple ())
230+ time2 = time1 + 60
231+ self .fs .setinfo ("bar" , {"details" : {"modified" : time1 }})
232+ mtime1 = self .fs .getinfo ("bar" , ("details" ,)).modified
233+ self .fs .setinfo ("bar" , {"details" : {"modified" : time2 }})
234+ mtime2 = self .fs .getinfo ("bar" , ("details" ,)).modified
235+ replacement = {}
236+ if mtime1 .microsecond == 0 or mtime2 .microsecond == 0 :
237+ mtime1 = mtime1 .replace (microsecond = 0 )
238+ mtime2 = mtime2 .replace (microsecond = 0 )
239+ if mtime1 .second == 0 or mtime2 .second == 0 :
240+ mtime1 = mtime1 .replace (second = 0 )
241+ mtime2 = mtime2 .replace (second = 0 )
242+ mtime2_modified = mtime2 .replace (minute = mtime2 .minute - 1 )
243+ self .assertEqual (
244+ mtime1 .replace (** replacement ), mtime2_modified .replace (** replacement )
245+ )
246+
226247 def test_host (self ):
227248 self .assertEqual (self .fs .host , self .server .host )
228249
@@ -301,7 +322,6 @@ def test_features(self):
301322@mark .slow
302323@unittest .skipIf (platform .python_implementation () == "PyPy" , "ftp unreliable with PyPy" )
303324class TestAnonFTPFS (FSTestCases , unittest .TestCase ):
304-
305325 user = "anonymous"
306326 pasw = ""
307327
0 commit comments