summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--combox/file.py10
-rw-r--r--tests/file_test.py10
2 files changed, 20 insertions, 0 deletions
diff --git a/combox/file.py b/combox/file.py
index e6d4000..f5b38f5 100644
--- a/combox/file.py
+++ b/combox/file.py
@@ -49,6 +49,16 @@ def relative_path(p, config, comboxd=True):
return p.partition(directory)[2]
+def cb_path(shard_path, config):
+ """
+ Returns abs. path of file (in combox dir.) corresponding to the shard with path `shard_path'
+ """
+ rel_shard_path = relative_path(shard_path, config, False)
+ rel_file_path = rel_shard_path.partition('.shard')[0]
+
+ return path.join(config['combox_dir'], rel_file_path)
+
+
def mk_nodedir(directory, config):
"""
Creates directory `directory' inside the nodes.
diff --git a/tests/file_test.py b/tests/file_test.py
index 50bf261..5cbd371 100644
--- a/tests/file_test.py
+++ b/tests/file_test.py
@@ -112,6 +112,16 @@ class TestFile(object):
self.config, False)
+ def test_cbpath(self):
+ """Tests the get_cbpath function"""
+ split_and_encrypt(self.TEST_FILE, self.config)
+ test_file_shard_0 = '%s.shard.0' % path.basename(self.TEST_FILE)
+ test_file_shard_0_abspath = path.join(get_nodedirs(self.config)[0],
+ test_file_shard_0)
+
+ assert self.TEST_FILE == cb_path(test_file_shard_0_abspath,
+ self.config)
+
@classmethod
def teardown_class(self):
"""Purge the mess created by this test."""