def test_lists_files_with_size(self): global fs dirname = filewatch_pb2.Directoryname() dirname.name = "/dir1" filelist = self.stub.ListFiles(dirname) for fname in filelist.filenames: self.assertEquals(fs.size(os.path.join('dir1', fname.name)), fname.size)
def test_error_on_existing_file(self): dirname = filewatch_pb2.Directoryname() dirname.name = "/file1.txt" with self.assertRaisesRegex(Exception, "'/file1.txt' is not a directory") as cm: dirlist = self.stub.ListFiles(dirname) self.assertEquals(grpc.StatusCode.NOT_FOUND, cm.exception.code())
def test_fails_when_directory_does_not_exist(self): dirname = filewatch_pb2.Directoryname() dirname.name = "/not_existing_dir" with self.assertRaisesRegex( Exception, "'/not_existing_dir' does not exist") as cm: dirlist = self.stub.ListFiles(dirname) self.assertEquals(grpc.StatusCode.NOT_FOUND, cm.exception.code())
def test_dirs_in_sub_dir(self): dirname = filewatch_pb2.Directoryname() dirname.name = "/dir1" dirlist = self.stub.ListDirectories(dirname) self.assertEquals("/dir1", dirlist.name.name) self.assertEquals(3, len(dirlist.dirnames)) self.assertEquals(set(["dir3", "dir4", "dir5"]), set([dname.name for dname in dirlist.dirnames]))
def test_lists_files_in_root_dir(self): dirname = filewatch_pb2.Directoryname() dirname.name = "/" filelist = self.stub.ListFiles(dirname) self.assertEquals("/", filelist.name.name) self.assertEquals(2, len(filelist.filenames)) for fname in filelist.filenames: self.assertEquals("/", fname.dirname.name) self.assertEquals(set(["file1.txt", "file2.txt"]), set([fname.name for fname in filelist.filenames]))
def listen_for_events(self, name_of_dir): dirname = filewatch_pb2.Directoryname() dirname.name = name_of_dir direvt_generator = self.stub.ListenForEvents(dirname) direvt = next(direvt_generator) self.assertEqual(filewatch_pb2.DirectoryEvent.WATCHING_DIRECTORY, direvt.event) self.assertEqual(name_of_dir, direvt.name) self.assertEqual('.', direvt.dirname.name) return direvt_generator
def test_lists_files_in_sub_dir(self): dirname = filewatch_pb2.Directoryname() dirname.name = "/dir1" filelist = self.stub.ListFiles(dirname) self.assertEquals("/dir1", filelist.name.name) self.assertEquals(3, len(filelist.filenames)) for fname in filelist.filenames: self.assertEquals("/dir1", fname.dirname.name) self.assertEquals(set(["file3.txt", "file4.txt", "file5.txt"]), set([fname.name for fname in filelist.filenames]))
def test_lists_files_modification_time(self): global fs files = [ "file1.txt", "file2.txt", os.path.join("dir1", "file3.txt"), os.path.join("dir1", "file4.txt"), os.path.join("dir1", "file5.txt") ] expected = {name: fs.mtime(name) for name in files} dirname = filewatch_pb2.Directoryname() dirname.name = "/" filelist = self.stub.ListFiles(dirname) self.assertEquals(filelist.name.modification_time.epoch, fs.mtime(".")) for fname in filelist.filenames: self.assertEquals(expected[fname.name], fname.modification_time.epoch) dirname.name = "/dir1" filelist = self.stub.ListFiles(dirname) self.assertEquals(filelist.name.modification_time.epoch, fs.mtime("dir1")) for fname in filelist.filenames: self.assertEquals(expected[os.path.join("dir1", fname.name)], fname.modification_time.epoch)
def test_modification_times(self): global fs dirs = [ "dir1", "dir2", os.path.join("dir1", "dir3"), os.path.join("dir1", "dir4"), os.path.join("dir1", "dir5") ] expected = {name: fs.mtime(name) for name in dirs} dirname = filewatch_pb2.Directoryname() dirname.name = "/" dirlist = self.stub.ListDirectories(dirname) self.assertEquals(dirlist.name.modification_time.epoch, fs.mtime(".")) for dname in dirlist.dirnames: self.assertEquals(expected[dname.name], dname.modification_time.epoch) dirname.name = "/dir1" dirlist = self.stub.ListDirectories(dirname) self.assertEquals(dirlist.name.modification_time.epoch, fs.mtime("dir1")) for dname in dirlist.dirnames: self.assertEquals(expected[os.path.join("dir1", dname.name)], dname.modification_time.epoch)
def run_test(tempdir): channel = grpc.insecure_channel('localhost:45678') stub = filewatch_pb2_grpc.DirectoryStub(channel) dirname = filewatch_pb2.Directoryname() dirname.name = "/" filelist = stub.ListFiles(dirname)