def __init__(self, url=common.DEFAULT_URL, debug=False, quiet=False, use_folder_tree=False, max_size=common.DEFAULT_MAX_SIZE, min_free_size=common.DEFAULT_MIN_FREE_SIZE, store_path=common.DEFAULT_STORE_PATH, config_path=common.DEFAULT_CONFIG_PATH, connection_retry_limit=common.DEFAULT_CONNECTION_RETRY_LIMIT, connection_retry_delay=common.DEFAULT_CONNECTION_RETRY_DELAY, nop2p=True): debug = deserialize.flag(debug) quiet = deserialize.flag(quiet) self.storjnode = None self.nop2p = nop2p self.url = deserialize.url(url) self.use_folder_tree = deserialize.flag(use_folder_tree) self.max_size = deserialize.byte_count(max_size) self.min_free_size = deserialize.byte_count(min_free_size) self.messenger = None # lazy self.btctxstore = BtcTxStore() self.retry_limit = deserialize.positive_integer(connection_retry_limit) self.retry_delay = deserialize.positive_integer(connection_retry_delay) # paths self.cfg_path = os.path.realpath(config_path) storjnode.util.ensure_path_exists(os.path.dirname(self.cfg_path)) self.store_path = os.path.realpath(store_path) storjnode.util.ensure_path_exists(self.store_path) # check for vfat partions try: fstype = storjnode.util.get_fs_type(self.store_path) # FileNotFoundError: [Errno 2] No such file or directory: '/etc/mtab' # psutil: https://code.google.com/p/psutil/issues/detail?id=434 except EnvironmentError as e: logger.warning(e) fstype = None if fstype == "vfat": logger.info("Detected vfat partition, using folder tree.") self.use_folder_tree = True if fstype is None: msg = "Couldn't detected partition type for '{0}'" logger.warning(msg.format(self.store_path)) self.cfg = storjnode.config.get(self.btctxstore, self.cfg_path)
def test_types(self): # accepted types self.assertEqual(deserialize.byte_count(1), 1) self.assertEqual(deserialize.byte_count("1"), 1) self.assertEqual(deserialize.byte_count(b"1"), 1) self.assertEqual(deserialize.byte_count(u"1"), 1) def callback(): deserialize.byte_count(None) self.assertRaises(exceptions.InvalidInput, callback) def callback(): deserialize.byte_count(1.0) self.assertRaises(exceptions.InvalidInput, callback)
def test_base_1024(self): self.assertEqual(deserialize.byte_count("1K"), 1 * (1024 ** 1)) self.assertEqual(deserialize.byte_count("2K"), 2 * (1024 ** 1)) self.assertEqual(deserialize.byte_count("1M"), 1 * (1024 ** 2)) self.assertEqual(deserialize.byte_count("2M"), 2 * (1024 ** 2)) self.assertEqual(deserialize.byte_count("1G"), 1 * (1024 ** 3)) self.assertEqual(deserialize.byte_count("2G"), 2 * (1024 ** 3)) self.assertEqual(deserialize.byte_count("1T"), 1 * (1024 ** 4)) self.assertEqual(deserialize.byte_count("2T"), 2 * (1024 ** 4)) self.assertEqual(deserialize.byte_count("1P"), 1 * (1024 ** 5)) self.assertEqual(deserialize.byte_count("2P"), 2 * (1024 ** 5))
def test_base_1000(self): self.assertEqual(deserialize.byte_count("1KB"), 1 * (1000 ** 1)) self.assertEqual(deserialize.byte_count("2KB"), 2 * (1000 ** 1)) self.assertEqual(deserialize.byte_count("1MB"), 1 * (1000 ** 2)) self.assertEqual(deserialize.byte_count("2MB"), 2 * (1000 ** 2)) self.assertEqual(deserialize.byte_count("1GB"), 1 * (1000 ** 3)) self.assertEqual(deserialize.byte_count("2GB"), 2 * (1000 ** 3)) self.assertEqual(deserialize.byte_count("1TB"), 1 * (1000 ** 4)) self.assertEqual(deserialize.byte_count("2TB"), 2 * (1000 ** 4)) self.assertEqual(deserialize.byte_count("1PB"), 1 * (1000 ** 5)) self.assertEqual(deserialize.byte_count("2PB"), 2 * (1000 ** 5))
def __init__(self, url=common.DEFAULT_URL, debug=False, max_size=common.DEFAULT_MAX_SIZE, store_path=common.DEFAULT_STORE_PATH, config_path=common.DEFAULT_CONFIG_PATH, set_master_secret=None, set_payout_address=None, connection_retry_limit=common.DEFAULT_CONNECTION_RETRY_LIMIT, connection_retry_delay=common.DEFAULT_CONNECTION_RETRY_DELAY): # FIXME validate master_secret self.url = url self.config = None # lazy self.messanger = None # lazy self.debug = debug # TODO validate self.retry_limit = deserialize.positive_integer(connection_retry_limit) self.retry_delay = deserialize.positive_integer(connection_retry_delay) self.max_size = deserialize.byte_count(max_size) # paths self.config_path = os.path.realpath(config_path) # TODO validate self._ensure_path_exists(os.path.dirname(self.config_path)) self.store_path = os.path.realpath(store_path) self._ensure_path_exists(self.store_path) # validate payout address self.btctxstore = BtcTxStore() if set_payout_address and (not self.btctxstore.validate_address(set_payout_address)): raise exceptions.InvalidAddress(set_payout_address) self._initialize_config(set_master_secret, set_payout_address)
def __init__(self, url=common.DEFAULT_URL, debug=False, quiet=False, use_folder_tree=False, max_size=common.DEFAULT_MAX_SIZE, store_path=common.DEFAULT_STORE_PATH, config_path=common.DEFAULT_CONFIG_PATH, connection_retry_limit=common.DEFAULT_CONNECTION_RETRY_LIMIT, connection_retry_delay=common.DEFAULT_CONNECTION_RETRY_DELAY): debug = deserialize.flag(debug) quiet = deserialize.flag(quiet) self.url = deserialize.url(url) self.use_folder_tree = deserialize.flag(use_folder_tree) self.max_size = deserialize.byte_count(max_size) self.messenger = None # lazy self.btctxstore = BtcTxStore() self.retry_limit = deserialize.positive_integer(connection_retry_limit) self.retry_delay = deserialize.positive_integer(connection_retry_delay) # paths self.cfg_path = os.path.realpath(config_path) control.util.ensure_path_exists(os.path.dirname(self.cfg_path)) self.store_path = os.path.realpath(store_path) control.util.ensure_path_exists(self.store_path) # check for vfat partions fstype = control.util.get_fs_type(self.store_path) if fstype == "vfat": logger.info("Detected vfat partition, using folder tree.") self.use_folder_tree = True if fstype is None: msg = "Couldn't detected partition type for '{0}'" logger.warning(msg.format(self.store_path)) self.cfg = control.config.get(self.btctxstore, self.cfg_path)
def __init__(self, address=None, url=common.DEFAULT_URL, debug=False, max_size=common.DEFAULT_MAX_SIZE, store_path=common.DEFAULT_STORE_PATH, connection_retry_limit=common.DEFAULT_CONNECTION_RETRY_LIMIT, connection_retry_delay=common.DEFAULT_CONNECTION_RETRY_DELAY): self.url = url self.debug = debug self.address = address self.max_size = deserialize.byte_count(max_size) self.store_path = os.path.realpath(store_path) # FIXME add deserialize.positive_integer if int(connection_retry_limit) < 0: raise exceptions.InvalidArgument() self.connection_retry_limit = int(connection_retry_limit) # FIXME add deserialize.positive_integer if int(connection_retry_delay) < 0: raise exceptions.InvalidArgument() self.connection_retry_delay = int(connection_retry_delay) # ensure storage dir exists if not os.path.exists(self.store_path): os.makedirs(self.store_path)
def __init__(self, url=common.DEFAULT_URL, debug=False, quiet=False, use_folder_tree=False, max_size=common.DEFAULT_MAX_SIZE, store_path=common.DEFAULT_STORE_PATH, config_path=common.DEFAULT_CONFIG_PATH, connection_retry_limit=common.DEFAULT_CONNECTION_RETRY_LIMIT, connection_retry_delay=common.DEFAULT_CONNECTION_RETRY_DELAY): debug = deserialize.flag(debug) quiet = deserialize.flag(quiet) self.url = deserialize.url(url) self.use_folder_tree = deserialize.flag(use_folder_tree) self.max_size = deserialize.byte_count(max_size) self.messenger = None # lazy self.btctxstore = BtcTxStore() self.retry_limit = deserialize.positive_integer(connection_retry_limit) self.retry_delay = deserialize.positive_integer(connection_retry_delay) # paths self.cfg_path = os.path.realpath(config_path) control.util.ensure_path_exists(os.path.dirname(self.cfg_path)) self.store_path = os.path.realpath(store_path) control.util.ensure_path_exists(self.store_path) # check for vfat partions if control.util.get_fs_type(self.store_path) == "vfat": self.use_folder_tree = True self.cfg = control.config.get(self.btctxstore, self.cfg_path)
def __init__(self, url=common.DEFAULT_URL, debug=False, max_size=common.DEFAULT_MAX_SIZE, store_path=common.DEFAULT_STORE_PATH, config_path=common.DEFAULT_CONFIG_PATH, connection_retry_limit=common.DEFAULT_CONNECTION_RETRY_LIMIT, connection_retry_delay=common.DEFAULT_CONNECTION_RETRY_DELAY): self.url = url self.messanger = None # lazy self.debug = debug self.btctxstore = BtcTxStore() self.retry_limit = deserialize.positive_integer(connection_retry_limit) self.retry_delay = deserialize.positive_integer(connection_retry_delay) self.max_size = deserialize.byte_count(max_size) # paths self.cfg_path = os.path.realpath(config_path) self._ensure_path_exists(os.path.dirname(self.cfg_path)) self.store_path = os.path.realpath(store_path) self._ensure_path_exists(self.store_path) self.cfg = config.get(self.btctxstore, self.cfg_path)
def test_decimal(self): # test unit boundries base 1024 self.assertEqual(deserialize.byte_count("1.0K"), 1024 ** 1 ) self.assertEqual(deserialize.byte_count("1.0M"), 1024 ** 2 ) self.assertEqual(deserialize.byte_count("1.0G"), 1024 ** 3 ) self.assertEqual(deserialize.byte_count("1.0T"), 1024 ** 4 ) self.assertEqual(deserialize.byte_count("1.0P"), 1024 ** 5 ) # test unit boundries base 1000 self.assertEqual(deserialize.byte_count("1.0KB"), 1000 ** 1 ) self.assertEqual(deserialize.byte_count("1.0MB"), 1000 ** 2 ) self.assertEqual(deserialize.byte_count("1.0GB"), 1000 ** 3 ) self.assertEqual(deserialize.byte_count("1.0TB"), 1000 ** 4 ) self.assertEqual(deserialize.byte_count("1.0PB"), 1000 ** 5 ) # test between unit boundries base 1024 self.assertEqual(deserialize.byte_count("0.5K"), (1024 ** 1 / 2)) self.assertEqual(deserialize.byte_count("0.5M"), (1024 ** 2 / 2)) self.assertEqual(deserialize.byte_count("0.5G"), (1024 ** 3 / 2)) self.assertEqual(deserialize.byte_count("0.5T"), (1024 ** 4 / 2)) self.assertEqual(deserialize.byte_count("0.5P"), (1024 ** 5 / 2)) # test between unit boundries base 1000 self.assertEqual(deserialize.byte_count("0.5KB"), (1000 ** 1 / 2)) self.assertEqual(deserialize.byte_count("0.5MB"), (1000 ** 2 / 2)) self.assertEqual(deserialize.byte_count("0.5GB"), (1000 ** 3 / 2)) self.assertEqual(deserialize.byte_count("0.5TB"), (1000 ** 4 / 2)) self.assertEqual(deserialize.byte_count("0.5PB"), (1000 ** 5 / 2)) # test type self.assertTrue(isinstance(deserialize.byte_count("0.49K"), int)) self.assertTrue(isinstance(deserialize.byte_count("0.49M"), int)) self.assertTrue(isinstance(deserialize.byte_count("0.49G"), int)) self.assertTrue(isinstance(deserialize.byte_count("0.49T"), int)) self.assertTrue(isinstance(deserialize.byte_count("0.49P"), int)) self.assertTrue(isinstance(deserialize.byte_count("0.49KB"), int)) self.assertTrue(isinstance(deserialize.byte_count("0.49MB"), int)) self.assertTrue(isinstance(deserialize.byte_count("0.49GB"), int)) self.assertTrue(isinstance(deserialize.byte_count("0.49TB"), int)) self.assertTrue(isinstance(deserialize.byte_count("0.49PB"), int))
def callback(): deserialize.byte_count(1.0)
def test_decimal(self): # test unit boundries base 1024 self.assertEqual(deserialize.byte_count("1.0K"), 1024 ** 1) self.assertEqual(deserialize.byte_count("1.0M"), 1024 ** 2) self.assertEqual(deserialize.byte_count("1.0G"), 1024 ** 3) self.assertEqual(deserialize.byte_count("1.0T"), 1024 ** 4) self.assertEqual(deserialize.byte_count("1.0P"), 1024 ** 5) # test unit boundries base 1000 self.assertEqual(deserialize.byte_count("1.0KB"), 1000 ** 1) self.assertEqual(deserialize.byte_count("1.0MB"), 1000 ** 2) self.assertEqual(deserialize.byte_count("1.0GB"), 1000 ** 3) self.assertEqual(deserialize.byte_count("1.0TB"), 1000 ** 4) self.assertEqual(deserialize.byte_count("1.0PB"), 1000 ** 5) # test between unit boundries base 1024 self.assertEqual(deserialize.byte_count("0.5K"), (1024 ** 1 / 2)) self.assertEqual(deserialize.byte_count("0.5M"), (1024 ** 2 / 2)) self.assertEqual(deserialize.byte_count("0.5G"), (1024 ** 3 / 2)) self.assertEqual(deserialize.byte_count("0.5T"), (1024 ** 4 / 2)) self.assertEqual(deserialize.byte_count("0.5P"), (1024 ** 5 / 2)) # test between unit boundries base 1000 self.assertEqual(deserialize.byte_count("0.5KB"), (1000 ** 1 / 2)) self.assertEqual(deserialize.byte_count("0.5MB"), (1000 ** 2 / 2)) self.assertEqual(deserialize.byte_count("0.5GB"), (1000 ** 3 / 2)) self.assertEqual(deserialize.byte_count("0.5TB"), (1000 ** 4 / 2)) self.assertEqual(deserialize.byte_count("0.5PB"), (1000 ** 5 / 2)) # test type self.assertTrue(isinstance(deserialize.byte_count("0.49K"), int)) self.assertTrue(isinstance(deserialize.byte_count("0.49M"), int)) self.assertTrue(isinstance(deserialize.byte_count("0.49G"), int)) self.assertTrue(isinstance(deserialize.byte_count("0.49T"), int)) self.assertTrue(isinstance(deserialize.byte_count("0.49P"), int)) self.assertTrue(isinstance(deserialize.byte_count("0.49KB"), int)) self.assertTrue(isinstance(deserialize.byte_count("0.49MB"), int)) self.assertTrue(isinstance(deserialize.byte_count("0.49GB"), int)) self.assertTrue(isinstance(deserialize.byte_count("0.49TB"), int)) self.assertTrue(isinstance(deserialize.byte_count("0.49PB"), int))
def test_no_postfix(self): self.assertEqual(deserialize.byte_count("1"), 1) self.assertEqual(deserialize.byte_count("2"), 2)
def test_int(self): self.assertEqual(deserialize.byte_count(1), 1)
def callback(): deserialize.byte_count(None)
def test_int(self): self.assertEqual(deserialize.byte_count(0), 0) self.assertEqual(deserialize.byte_count(1), 1)
def test_no_postfix(self): self.assertEqual(deserialize.byte_count("0"), 0) self.assertEqual(deserialize.byte_count("1"), 1) self.assertEqual(deserialize.byte_count("2"), 2)