def test_existed_wallet_permissions(tdir_hierarchy, test_wallet):
    root, dirs, files = tdir_hierarchy
    wpath = os.path.join(root, files[0])
    mode1 = get_permissions(wpath)
    mode2 = mode1 | NOT_LISTED_PERMISSION
    wsh = WalletStorageHelper(root, fmode=mode2)
    wsh.saveWallet(test_wallet, files[0])
    check_permissions(wpath, mode2)
def test_load_wallet_by_abs_path(
        tdir_for_func, keyrings_base_dir, test_wallet):
    wsh = WalletStorageHelper(keyrings_base_dir)
    abs_path = os.path.join(keyrings_base_dir, "5/6/7/wallet")
    wsh.saveWallet(test_wallet, abs_path)
    loaded_wallet = wsh.loadWallet(abs_path)
    # TODO no comparison operator for Wallet (and classes it used)
    assert encode_wallet(test_wallet) == encode_wallet(loaded_wallet)
def test_existed_wallet_permissions(tdir_hierarchy, test_wallet):
    root, dirs, files = tdir_hierarchy
    wpath = os.path.join(root, files[0])
    mode1 = get_permissions(wpath)
    mode2 = mode1 | NOT_LISTED_PERMISSION
    wsh = WalletStorageHelper(root, fmode=mode2)
    wsh.saveWallet(test_wallet, files[0])
    check_permissions(wpath, mode2)
def test_load_wallet_by_abs_path(tdir_for_func, keyrings_base_dir,
                                 test_wallet):
    wsh = WalletStorageHelper(keyrings_base_dir)
    abs_path = os.path.join(keyrings_base_dir, "5/6/7/wallet")
    wsh.saveWallet(test_wallet, abs_path)
    loaded_wallet = wsh.loadWallet(abs_path)
    # TODO no comparison operator for Wallet (and classes it used)
    assert encode_wallet(test_wallet) == encode_wallet(loaded_wallet)
def test_store_wallet_by_empty_path_fail(
        tdir_for_func, keyrings_base_dir, test_wallet):
    wsh = WalletStorageHelper(keyrings_base_dir)

    for path in (None, ''):
        with pytest.raises(ValueError) as exc_info:
            wsh.saveWallet(test_wallet, path)

        exc_info.match(r'empty path')
def test_loaded_wallet_data(tdir_for_func, keyrings_base_dir, test_wallet):
    wpath = 'ctx/test.wallet'

    wsh = WalletStorageHelper(keyrings_base_dir)

    wsh.saveWallet(test_wallet, wpath)
    loaded_wallet = wsh.loadWallet(wpath)
    # TODO no comparison operator for Wallet (and classes it used)
    assert encode_wallet(test_wallet) == encode_wallet(loaded_wallet)
def test_store_wallet_by_empty_path_fail(tdir_for_func, keyrings_base_dir,
                                         test_wallet):
    wsh = WalletStorageHelper(keyrings_base_dir)

    for path in (None, ''):
        with pytest.raises(ValueError) as exc_info:
            wsh.saveWallet(test_wallet, path)

        exc_info.match(r'empty path')
def test_loaded_wallet_data(tdir_for_func, keyrings_base_dir, test_wallet):
    wpath = 'ctx/test.wallet'

    wsh = WalletStorageHelper(keyrings_base_dir)

    wsh.saveWallet(test_wallet, wpath)
    loaded_wallet = wsh.loadWallet(wpath)
    # TODO no comparison operator for Wallet (and classes it used)
    assert encode_wallet(test_wallet) == encode_wallet(loaded_wallet)
def test_wallet_dir_path_exists_as_file(tdir_hierarchy, test_wallet):
    root, dirs, files = tdir_hierarchy

    wdir = files[0]

    wsh = WalletStorageHelper(root)
    with pytest.raises(NotADirectoryError) as exc_info:
        wsh.saveWallet(test_wallet, os.path.join(wdir, 'wallet'))

    exc_info.match(r"{}".format(wdir))
def test_wallet_dir_path_exists_as_file(tdir_hierarchy, test_wallet):
    root, dirs, files = tdir_hierarchy

    wdir = files[0]

    wsh = WalletStorageHelper(root)
    with pytest.raises(NotADirectoryError) as exc_info:
        wsh.saveWallet(test_wallet, os.path.join(wdir, 'wallet'))

    exc_info.match(r"{}".format(wdir))
def test_new_file_wallet_permissions(
        tdir_for_func, keyrings_base_dir, test_wallet):
    wpath = 'ctx/test.wallet'

    # default
    wsh = WalletStorageHelper(keyrings_base_dir)
    wpath = '1/2/3/wallet'
    wpath_res = wsh.saveWallet(test_wallet, wpath)
    check_permissions(wpath_res, DEFAULT_FMODE)

    # non-default
    fmode = DEFAULT_DMODE + 1
    wsh = WalletStorageHelper(keyrings_base_dir, fmode=fmode)
    wpath = '4/5/6/wallet'
    wpath_res = wsh.saveWallet(test_wallet, wpath)
    check_permissions(wpath_res, fmode)
def test_new_file_wallet_permissions(tdir_for_func, keyrings_base_dir,
                                     test_wallet):
    wpath = 'ctx/test.wallet'

    # default
    wsh = WalletStorageHelper(keyrings_base_dir)
    wpath = '1/2/3/wallet'
    wpath_res = wsh.saveWallet(test_wallet, wpath)
    check_permissions(wpath_res, DEFAULT_FMODE)

    # non-default
    fmode = DEFAULT_DMODE + 1
    wsh = WalletStorageHelper(keyrings_base_dir, fmode=fmode)
    wpath = '4/5/6/wallet'
    wpath_res = wsh.saveWallet(test_wallet, wpath)
    check_permissions(wpath_res, fmode)
def test_stored_wallet_data(tdir_for_func, keyrings_base_dir, test_wallet):
    wpath = 'ctx/test.wallet'

    wsh = WalletStorageHelper(keyrings_base_dir)

    wpath_res = wsh.saveWallet(test_wallet, wpath)
    assert wpath_res == os.path.join(keyrings_base_dir, wpath)

    with open(wpath_res) as wf:
        wdata = wf.read()

    # TODO no comparison operator for Wallet
    assert wdata == encode_wallet(test_wallet)
def test_stored_wallet_data(tdir_for_func, keyrings_base_dir, test_wallet):
    wpath = 'ctx/test.wallet'

    wsh = WalletStorageHelper(keyrings_base_dir)

    wpath_res = wsh.saveWallet(test_wallet, wpath)
    assert wpath_res == os.path.join(keyrings_base_dir, wpath)

    with open(wpath_res) as wf:
        wdata = wf.read()

    # TODO no comparison operator for Wallet
    assert wdata == encode_wallet(test_wallet)
def test_store_wallet_by_abs_path(
        tdir_for_func, keyrings_base_dir, test_wallet):
    wsh = WalletStorageHelper(keyrings_base_dir)
    abs_path = os.path.join(keyrings_base_dir, "1/2/3/wallet")
    wsh.saveWallet(test_wallet, abs_path)
    check_permissions(abs_path, DEFAULT_FMODE)
def test_store_wallet_by_abs_path(tdir_for_func, keyrings_base_dir,
                                  test_wallet):
    wsh = WalletStorageHelper(keyrings_base_dir)
    abs_path = os.path.join(keyrings_base_dir, "1/2/3/wallet")
    wsh.saveWallet(test_wallet, abs_path)
    check_permissions(abs_path, DEFAULT_FMODE)