combox

split and encrypted files between online file storage providers
git clone git://git.ricketyspace.net/combox.git
Log | Files | Refs

commit 79bc74432d42006ac0cedebc2291e8f6b6d1cddb
parent 8a670ce3642d84cda9a4657d133da2b06b12ef3f
Author: Siddharth Ravikumar <sravik@bgsu.edu>
Date:   Fri, 20 Feb 2015 08:37:24 -0500

Refactored combox.file.cb_path to accept a file or a directory under a node directory.

It returns the path of the respective file or directory in the combox directory.

Also updated the test for this function at tests.file_test.TestFile.test_cbpath

	modified:   combox/file.py
	modified:   tests/file_test.py

Diffstat:
combox/file.py | 20+++++++++++++++-----
tests/file_test.py | 9++++++++-
2 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/combox/file.py b/combox/file.py @@ -49,14 +49,24 @@ def relative_path(p, config, comboxd=True): return p.partition(directory)[2] -def cb_path(shard_path, config): +def cb_path(node_path, config): """ - Returns abs. path of file (in combox dir.) corresponding to the shard with path `shard_path' + Returns abs. path of file (in combox dir.) given the node_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) + if path.isfile(node_path): + # partition function is used to remove the `.shard.N' from the + # file name. + rel_file_path = relative_path(node_path, + config, + False).partition('.shard')[0] + file_cb_path = path.join(config['combox_dir'], + rel_file_path) + else: + file_cb_path = path.join(config['combox_dir'], + relative_path(node_path, config, False)) + + return file_cb_path def mk_nodedir(directory, config): diff --git a/tests/file_test.py b/tests/file_test.py @@ -115,13 +115,20 @@ class TestFile(object): 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 = '%s.shard0' % 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) + # a directory inside combox dir. + foo_dir = path.join(self.config['combox_dir'], 'foo') + mk_nodedir(foo_dir, self.config) + foo_nodedir = path.join(get_nodedirs(self.config)[0], + 'foo') + assert foo_dir == cb_path(foo_nodedir, self.config) + @classmethod def teardown_class(self): """Purge the mess created by this test."""