# Path: ddsc/core/localstore.py
# class LocalProject(object):
# class LocalItemsCounter(object):
# class ItemsToSendCounter(object):
# class LocalFolder(object):
# class LocalFile(object):
# class HashData(object):
# class PathData(object):
# class HashUtil(object):
#     def __init__(self, followsymlinks, file_exclude_regex):
#     def add_path(self, path):
#     def add_paths(self, path_list):
#     def update_remote_ids(self, remote_project):
#     def set_remote_id_after_send(self, remote_id):
#     def count_local_items(self):
#     def count_items_to_send(self, upload_bytes_per_chunk):
#     def __str__(self):
#     def __init__(self, local_project):
#     def _count_recur(self, item):
#     def to_str(self, prefix):
#     def __init__(self, local_project, bytes_per_chunk):
#     def _walk_project(self, project):
#     def visit_project(self, item):
#     def visit_folder(self, item, parent):
#     def visit_file(self, item, parent):
#     def total_items(self):
#     def to_str(self, prefix, local_items_count):
# def _name_to_child_map(children):
# def _update_remote_children(remote_parent, children):
# def _build_project_tree(path, followsymlinks, file_filter):
# def _on_non_regular_file(path):
# def _build_folder_tree(top_abspath, followsymlinks, file_filter):
#     def __init__(self, path):
#     def add_child(self, child):
#     def update_remote_ids(self, remote_folder):
#     def set_remote_id_after_send(self, remote_id):
#     def __str__(self):
#     def __init__(self, path):
#     def get_path_data(self):
#     def get_hash_value(self):
#     def update_remote_ids(self, remote_file):
#     def calculate_local_hash(self):
#     def hash_matches_remote(self, hash_data):
#     def set_remote_values_after_send(self, remote_id, remote_hash_alg, remote_file_hash):
#     def count_chunks(self, bytes_per_chunk):
#     def __str__(self):
#     def __init__(self, hash_util):
#     def matches(self, hash_alg, hash_value):
#     def create_from_path(path):
#     def create_from_chunk(chunk):
#     def __init__(self, path):
#     def name(self):
#     def mime_type(self):
#     def size(self):
#     def get_hash(self):
#     def read_whole_file(self):
#     def __init__(self):
#     def add_file(self, filename, block_size=4096):
#     def add_chunk(self, chunk):
#     def hexdigest(self):
#     HASH_NAME = "md5"


import shutil
import tarfile
from unittest import TestCase
from ddsc.core.localstore import LocalFile, LocalFolder, LocalProject, KindType, LocalItemsCounter, ItemsToSendCounter
from mock import patch, Mock


INCLUDE_ALL = ''


def get_file_or_folder_paths(item, prefix=""):
    results = []
    item_path = ""
    if item.kind != KindType.project_str:
        item_path = "{}{}".format(prefix, item.name)
        results.append(item_path)

# Path: ddsc/core/localstore.py
# class LocalProject(object):
# class LocalItemsCounter(object):
# class ItemsToSendCounter(object):
# class LocalFolder(object):
# class LocalFile(object):
# class HashData(object):
# class PathData(object):
# class HashUtil(object):
#     def __init__(self, followsymlinks, file_exclude_regex):
#     def add_path(self, path):
#     def add_paths(self, path_list):
#     def update_remote_ids(self, remote_project):
#     def set_remote_id_after_send(self, remote_id):
#     def count_local_items(self):
#     def count_items_to_send(self, upload_bytes_per_chunk):
#     def __str__(self):
#     def __init__(self, local_project):
#     def _count_recur(self, item):
#     def to_str(self, prefix):
#     def __init__(self, local_project, bytes_per_chunk):
#     def _walk_project(self, project):
#     def visit_project(self, item):
#     def visit_folder(self, item, parent):
#     def visit_file(self, item, parent):
#     def total_items(self):
#     def to_str(self, prefix, local_items_count):
# def _name_to_child_map(children):
# def _update_remote_children(remote_parent, children):
# def _build_project_tree(path, followsymlinks, file_filter):
# def _on_non_regular_file(path):
# def _build_folder_tree(top_abspath, followsymlinks, file_filter):
#     def __init__(self, path):
#     def add_child(self, child):
#     def update_remote_ids(self, remote_folder):
#     def set_remote_id_after_send(self, remote_id):
#     def __str__(self):
#     def __init__(self, path):
#     def get_path_data(self):
#     def get_hash_value(self):
#     def update_remote_ids(self, remote_file):
#     def calculate_local_hash(self):
#     def hash_matches_remote(self, hash_data):
#     def set_remote_values_after_send(self, remote_id, remote_hash_alg, remote_file_hash):
#     def count_chunks(self, bytes_per_chunk):
#     def __str__(self):
#     def __init__(self, hash_util):
#     def matches(self, hash_alg, hash_value):
#     def create_from_path(path):
#     def create_from_chunk(chunk):
#     def __init__(self, path):
#     def name(self):
#     def mime_type(self):
#     def size(self):
#     def get_hash(self):
#     def read_whole_file(self):
#     def __init__(self):
#     def add_file(self, filename, block_size=4096):
#     def add_chunk(self, chunk):
#     def hexdigest(self):
#     HASH_NAME = "md5"


# Path: ddsc/core/tests/test_localstore.py
import shutil
import tarfile
from unittest import TestCase
from ddsc.core.localstore import LocalFile, LocalFolder, LocalProject, KindType, LocalItemsCounter, ItemsToSendCounter
from mock import patch, Mock



INCLUDE_ALL = ''


def get_file_or_folder_paths(item, prefix=""):
    results = []
    item_path = ""
    if item.kind != KindType.project_str:
        item_path = "{}{}".format(prefix, item.name)
        results.append(item_path)

    if item.kind != KindType.file_str: