def test_files_to_broadcast(self, m): mfs = MemoryFS() d = Directory('.', mfs) o0 = ini.OpAddToBroadcastFile('test1.txt') o1 = ini.OpAddToBroadcastFile('test2.txt') o2 = ini.OpGenerateFile('test3.txt') o3 = ini.OpBroadcastFile(['sub*']) r = RoutineOnDirectory(d, [o0, o1, o2], dryrun=True) r.work() result = [f.path.s for f in o3.files_to_broadcast(r)] self.assertEqual(sorted(result), sorted(['test{}.txt'.format(i) for i in range(1, 4)]))
def test_dryrun(self): mfs = MemoryFS() d = Directory('.', mfs) o0 = ini.OpAddToBroadcastFile('test1.txt') o1 = ini.OpAddToBroadcastFile('test2.txt') r = RoutineOnDirectory(d, [o0, o1], dryrun=True) r.work() self.assertEqual(r.result[0], { ini.KEYS.TARGET: 'test1.txt', ini.KEYS.IS_TO_BROADCAST: True }) self.assertEqual(r.result[1], { ini.KEYS.TARGET: 'test2.txt', ini.KEYS.IS_TO_BROADCAST: True })
def test_dryrun(self): mfs = MemoryFS() subs = ['sub.{}'.format(i) for i in range(3)] for d in subs: mfs.makedir(d) d = Directory('.', mfs) o0 = ini.OpAddToBroadcastFile('test1.txt') o1 = ini.OpAddToBroadcastFile('test2.txt') obc = ini.OpBroadcastFile(['sub*']) r = RoutineOnDirectory(d, [o0, o1], dryrun=True) r.work() files = ['test{}.txt'.format(i) for i in range(1, 3)] result = obc.dryrun(r) self.assertEqual(sorted(result[ini.KEYS.SUBDIRECTORIES]), sorted(subs)) self.assertEqual(sorted(result[ini.KEYS.TO_BROADCAST_FILES]), sorted(files))
def test_dryrun(self): mfs = MemoryFS() d = Directory('.', mfs) o = ini.OpSubdirectoriesMaker(3) r = RoutineOnDirectory(d, [o], dryrun=True) result = o.dryrun(r) self.assertEqual(result[ini.KEYS.SUBDIRECTORIES], ('sub.0', 'sub.1', 'sub.2'))
def test_apply(self, m): mfs = MemoryFS() d = Directory('.', mfs) o = ini.OpGenerateFile('test.txt') r = RoutineOnDirectory(d, [o]) o.apply(r) with mfs.open('test.txt', 'r') as fin: result = fin.readlines() self.assertEqual(result, ['test text'])
def test_dryrun(self, m): mfs = MemoryFS() d = Directory('.', mfs) o = ini.OpGenerateFile('test.txt') r = RoutineOnDirectory(d, [o]) self.assertEqual( o.dryrun(r), ini.TargetFileWithContent(File('test.txt', mfs), content='test text').to_dict())
def test_apply(self): mfs = MemoryFS() d = Directory('.', mfs) o = ini.OpSubdirectoriesMaker(3) r = RoutineOnDirectory(d, [o], dryrun=True) result = o.apply(r) dirs = ['sub.{}'.format(i) for i in range(3)] for d in dirs: self.assertTrue(mfs.exists(d))
def test_apply(self): mfs = MemoryFS() subs = ['sub.{}'.format(i) for i in range(3)] for d in subs: mfs.makedir(d) d = Directory('.', mfs) mfs.touch('test1.txt') mfs.touch('test2.txt') o0 = ini.OpAddToBroadcastFile('test1.txt') o1 = ini.OpAddToBroadcastFile('test2.txt') obc = ini.OpBroadcastFile(['sub*']) r = RoutineOnDirectory(d, [o0, o1, obc]) r.work() target_files = [] for d in subs: for f in ['test1.txt', 'test2.txt']: target_files.append(d + '/' + f) for i, t in enumerate(target_files): with self.subTest(i): self.assertTrue(mfs.exists(t))
def test_target(self): from fs.memoryfs import MemoryFS from dxl.fs import Directory from pygate.routine.base import RoutineOnDirectory from pygate.routine.merger import OpMerge import rx mfs = MemoryFS() d = Directory('.', mfs) mfs.makedir('sub1') mfs.makedir('sub2') mfs.touch('test.txt') r = RoutineOnDirectory(d) o = OperationOnFile('test.txt') self.assertEqual(o.target(r).path.s, 'test.txt')
def test_match(self): from fs.memoryfs import MemoryFS from dxl.fs import Directory mfs = MemoryFS() d = Directory('.', mfs) r = RoutineOnDirectory(d) for i in range(2): mfs.makedir('sub{}'.format(i)) mfs.makedir('testdir') mfs.touch('sub.txt') o = OperationOnSubdirectories(['sub*']) sub_dirs = (o.subdirectories(r).to_list().to_blocking().first()) self.assertEqual(len(sub_dirs), 2) paths = [d.path.s for d in sub_dirs] self.assertIn('sub0', paths) self.assertIn('sub1', paths)