def test_get_all_source_paths_ignore_nonsense(self): bucket = Bucket(self.workdir) open(os.path.join(self.workdir, 'sources', 'source3'), 'wb').write('Hi') open(os.path.join(self.workdir, 'sources', 'foo_3'), 'wb').write('Hi') paths1 = list(bucket.getAllSourcePaths()) bucket.storeResult( self.src_path1, self.result_path1, suffix='foo') paths2 = list(bucket.getAllSourcePaths()) self.assertEqual(paths1, []) self.assertEqual(len(paths2), 1)
def test_store_result_marker(self): bucket = Bucket(self.workdir) marker = bucket.storeResult( self.src_path1, self.result_path1, suffix='foo') self.assertEqual(marker, '1') marker = bucket.storeResult( self.src_path1, self.result_path2, suffix='foo') self.assertEqual(marker, '1') marker = bucket.storeResult( self.src_path2, self.result_path2, suffix='foo') self.assertEqual(marker, '2') return
def test_get_result_path(self): bucket = Bucket(self.workdir) path = bucket.getResultPath(self.src_path1) self.assertEqual(path, None) bucket.storeResult(self.src_path1, self.result_path1) path = bucket.getResultPath(self.src_path1) self.assertNotEqual(path, None) bucket.storeResult(self.src_path1, self.result_path1, suffix='foo') path = bucket.getResultPath(self.src_path1, suffix='foo') self.assertTrue(path.endswith('result_1__foo')) path = bucket.getResultPath(self.src_path1, suffix='bar') self.assertEqual(path, None) return
def test_get_source_path_ignore_nonsense(self): # Nonsense files in sourcedir are ignored. bucket = Bucket(self.workdir) open(os.path.join(self.workdir, 'sources', 'source3'), 'wb').write('Hi') open(os.path.join(self.workdir, 'sources', 'foo_3'), 'wb').write('Hi') path, marker = bucket.getSourcePath(self.src_path1) self.assertEqual((path, marker), (None, None)) bucket.storeResult(self.src_path1, self.result_path1) path, marker = bucket.getSourcePath(self.src_path1) self.assertEqual(marker, '1') return
def test_store_result_with_suffix(self): bucket = Bucket(self.workdir) bucket.storeResult(self.src_path1, self.result_path1, suffix='foo') files_are_equal = filecmp.cmp( self.src_path1, os.path.join(self.workdir, 'sources', 'source_1') ) self.assertTrue(files_are_equal, msg='source files differ') files_are_equal = filecmp.cmp( self.result_path1, os.path.join(self.workdir, 'results', 'result_1__foo') ) self.assertTrue(files_are_equal, msg='result files differ') return
def test_store_several_results(self): bucket = Bucket(self.workdir) bucket.storeResult(self.src_path1, self.result_path1) bucket.storeResult(self.src_path2, self.result_path2) files_are_equal = filecmp.cmp( self.src_path2, os.path.join(self.workdir, 'sources', 'source_2') ) self.assertTrue(files_are_equal, msg='source files differ') files_are_equal = filecmp.cmp( self.result_path2, os.path.join(self.workdir, 'results', 'result_2_default') ) self.assertTrue(files_are_equal, msg='result files differ') return
def test_get_source_path(self): bucket = Bucket(self.workdir) path, marker = bucket.getSourcePath(self.src_path1) self.assertEqual((path, marker), (None, None)) bucket.storeResult(self.src_path1, self.result_path1) bucket.storeResult(self.src_path2, self.result_path2) path, marker = bucket.getSourcePath(self.src_path1) self.assertEqual( (path, marker), (os.path.join(self.workdir, 'sources', 'source_1'), '1') ) path, marker = bucket.getSourcePath(self.src_path2) self.assertEqual( (path, marker), (os.path.join(self.workdir, 'sources', 'source_2'), '2') ) return
def test_get_all_source_paths(self): bucket = Bucket(self.workdir) paths = bucket.getAllSourcePaths() self.assertTrue( isinstance(paths, types.GeneratorType)) paths = list(paths) self.assertEqual(paths, []) bucket.storeResult( self.src_path1, self.result_path1, suffix='foo') paths = list(bucket.getAllSourcePaths()) self.assertTrue(paths[0].endswith('source_1')) self.assertEqual(len(paths), 1) bucket.storeResult( self.src_path2, self.result_path2, suffix='bar') paths = list(bucket.getAllSourcePaths()) self.assertEqual(len(paths), 2) return
def test_get_result_path_from_marker(self): bucket = Bucket(self.workdir) marker1 = bucket.storeResult( self.src_path1, self.result_path1, suffix=None) marker2 = bucket.storeResult( self.src_path1, self.result_path1, suffix='foo') marker3 = bucket.storeResult( self.src_path2, self.result_path1, suffix='foo') path1 = bucket.getResultPathFromMarker(marker1) path2 = bucket.getResultPathFromMarker(marker2, suffix='foo') path3 = bucket.getResultPathFromMarker(marker3, suffix='foo') path4 = bucket.getResultPathFromMarker(marker3, suffix='bar') path5 = bucket.getResultPathFromMarker('1') path6 = bucket.getResultPathFromMarker('3') expected_path1 = os.path.join('results', 'result_1_default') expected_path2 = os.path.join('results', 'result_1__foo') expected_path3 = os.path.join('results', 'result_2__foo') self.assertTrue(path1.endswith(expected_path1)) self.assertTrue(path2.endswith(expected_path2)) self.assertTrue(path3.endswith(expected_path3)) self.assertTrue(path4 is None) self.assertTrue(path5 is not None) self.assertTrue(path6 is None)
def test_store_result_twice(self): bucket = Bucket(self.workdir) bucket.storeResult(self.src_path1, self.result_path1, suffix='foo') listing = os.listdir(os.path.join(self.workdir, 'results')) self.assertEqual(listing, ['result_1__foo']) bucket.storeResult(self.src_path1, self.result_path1) bucket.storeResult(self.src_path1, self.result_path2) bucket.storeResult(self.src_path1, self.result_path1) listing = sorted(os.listdir(os.path.join(self.workdir, 'results'))) self.assertEqual(listing, ['result_1__foo', 'result_1_default']) curr_num = bucket.getCurrentNum() self.assertEqual(curr_num, 1) return