예제 #1
0
 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)
예제 #2
0
 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
예제 #3
0
 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
예제 #4
0
 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
예제 #5
0
 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
예제 #6
0
 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
예제 #7
0
 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
예제 #8
0
    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
예제 #9
0
 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)
예제 #10
0
    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