summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--combox/file.py17
-rw-r--r--tests/file_test.py24
2 files changed, 34 insertions, 7 deletions
diff --git a/combox/file.py b/combox/file.py
index 0eb08b3..e6d4000 100644
--- a/combox/file.py
+++ b/combox/file.py
@@ -26,8 +26,14 @@ from glob import glob
from combox.config import get_nodedirs
-def relative_path(p, config):
- """Returns the relative path to the `p' w. r. t combox directory.
+def relative_path(p, config, comboxd=True):
+ """Returns the relative path to the `p' w. r. t combox or node directory.
+
+ If `comboxd' is True, the relative path is w. r. t combox
+ directory.
+
+ If `comboxd' is False, the relative path is w. r. t node
+ directory.
p: path to a directory or file.
@@ -35,9 +41,12 @@ def relative_path(p, config):
combox.
"""
- combox_dir = '%s/' % config['combox_dir']
+ if comboxd:
+ directory = '%s/' % config['combox_dir']
+ else:
+ directory = '%s/' % get_nodedirs(config)[0]
- return p.partition(combox_dir)[2]
+ return p.partition(directory)[2]
def mk_nodedir(directory, config):
diff --git a/tests/file_test.py b/tests/file_test.py
index 2c6dce0..b3edc7a 100644
--- a/tests/file_test.py
+++ b/tests/file_test.py
@@ -24,9 +24,8 @@ from nose.tools import *
from os import path, remove
from combox.config import get_nodedirs
-from combox.file import (split_data, glue_data, write_file,
- read_file, write_shards, read_shards,
- hash_file, rm_shards)
+from combox.crypto import split_and_encrypt
+from combox.file import *
from tests.utils import get_config, rm_nodedirs, rm_configdir
@@ -95,6 +94,25 @@ class TestFile(object):
assert fhash == sha512(fcontent).hexdigest()
+ def test_relativepath(self):
+ """
+ Tests the relative_path function
+ """
+
+ test_file_basename = path.basename(self.TEST_FILE)
+ print test_file_basename
+ assert test_file_basename == relative_path(self.TEST_FILE,
+ self.config)
+
+ split_and_encrypt(self.TEST_FILE, self.config)
+ test_file_shard_0 = '%s.shard.0' % test_file_basename
+ test_file_shard_0_abspath = "%s/%s" % (get_nodedirs(self.config)[0],
+ test_file_shard_0)
+
+ assert test_file_shard_0 == relative_path(test_file_shard_0_abspath,
+ self.config, False)
+
+
@classmethod
def teardown_class(self):
"""Purge the mess created by this test."""