# Path: deckhand/errors.py
# LOG = logging.getLogger(__name__)
# def get_version_from_request(req):
# def format_error_resp(req,
#                       resp,
#                       status_code=falcon.HTTP_500,
#                       message="",
#                       reason=None,
#                       error_type=None,
#                       error_list=None,
#                       info_list=None):
# def default_exception_handler(ex, req, resp, params):
# def default_exception_serializer(req, resp, exception):
#     def __init__(self, message=None, **kwargs):
#     def format_message(self):
# class DeckhandException(Exception):
# class InvalidDocumentFormat(DeckhandException):
# class InvalidDocumentLayer(DeckhandException):
# class InvalidDocumentParent(DeckhandException):
# class IndeterminateDocumentParent(DeckhandException):
# class SubstitutionDependencyCycle(DeckhandException):
# class MissingDocumentKey(DeckhandException):
# class MissingDocumentPattern(DeckhandException):
# class InvalidDocumentReplacement(DeckhandException):
# class UnsupportedActionMethod(DeckhandException):
# class RevisionTagBadFormat(DeckhandException):
# class SubstitutionSourceDataNotFound(DeckhandException):
# class DocumentNotFound(DeckhandException):
# class RevisionNotFound(DeckhandException):
# class RevisionTagNotFound(DeckhandException):
# class ValidationNotFound(DeckhandException):
# class DuplicateDocumentExists(DeckhandException):
# class SingletonDocumentConflict(DeckhandException):
# class LayeringPolicyNotFound(DeckhandException):
# class SubstitutionSourceNotFound(DeckhandException):
# class PolicyNotAuthorized(DeckhandException):
# class BarbicanException(DeckhandException):
# class UnknownSubstitutionError(DeckhandException):
# 
# Path: deckhand/tests/test_utils.py
# def rand_uuid_hex():
# def rand_name(name='', prefix='deckhand'):
# def rand_bool():
# def rand_int(min, max):
# def rand_password(length=15):
# 
# Path: deckhand/tests/unit/db/base.py
# BASE_EXPECTED_FIELDS = ("created_at", "updated_at", "deleted_at", "deleted")
# DOCUMENT_EXPECTED_FIELDS = BASE_EXPECTED_FIELDS + (
#     "id", "schema", "name", "layer", "metadata", "data", "data_hash",
#     "metadata_hash", "revision_id", "bucket_id")
# REVISION_EXPECTED_FIELDS = ("id", "documents", "tags")
# class DocumentFixture(object):
# class TestDbBase(base.DeckhandWithDBTestCase):
#     def get_minimal_fixture(**kwargs):
#     def get_minimal_multi_fixture(count=2, **kwargs):
#     def create_documents(self, bucket_name, documents,
#                          validation_policies=None):
#     def show_document(self, **fields):
#     def create_revision(self):
#     def show_revision(self, revision_id):
#     def delete_revisions(self):
#     def list_revision_documents(self, revision_id, **filters):
#     def list_revisions(self):
#     def rollback_revision(self, revision_id):
#     def create_validation(self, revision_id, val_name, val_data):
#     def _validate_object(self, obj):
#     def validate_document(self, actual, expected=None, is_deleted=False):
#     def validate_revision(self, revision):


from deckhand import errors
from deckhand.tests import test_utils
from deckhand.tests.unit.db import base
        self.assertEqual(created_rev_id,
                         retrieved_revision['documents'][0]['revision_id'])

    def test_delete_all(self):
        all_created_documents = []
        all_revision_ids = []

        for _ in range(3):
            document_payload = [base.DocumentFixture.get_minimal_fixture()]
            bucket_name = test_utils.rand_name('bucket')
            created_documents = self.create_documents(
                bucket_name, document_payload)
            all_created_documents.extend(created_documents)
            revision_id = created_documents[0]['revision_id']
            all_revision_ids.append(revision_id)

        self.delete_revisions()

        # Validate that all revisions were deleted.
        for revision_id in all_revision_ids:
            error_re = (r'^The requested revision=%s was not found.$'
                        % revision_id)
            self.assertRaisesRegex(errors.RevisionNotFound, error_re,
                                   self.show_revision, revision_id)

        # Validate that the documents (children) were deleted.
        for doc in created_documents:
            filters = {'id': doc['id']}
            error_re = (r'^The requested document using filters: %s was not '
                        'found.$' % filters)

# Path: deckhand/errors.py
# LOG = logging.getLogger(__name__)
# def get_version_from_request(req):
# def format_error_resp(req,
#                       resp,
#                       status_code=falcon.HTTP_500,
#                       message="",
#                       reason=None,
#                       error_type=None,
#                       error_list=None,
#                       info_list=None):
# def default_exception_handler(ex, req, resp, params):
# def default_exception_serializer(req, resp, exception):
#     def __init__(self, message=None, **kwargs):
#     def format_message(self):
# class DeckhandException(Exception):
# class InvalidDocumentFormat(DeckhandException):
# class InvalidDocumentLayer(DeckhandException):
# class InvalidDocumentParent(DeckhandException):
# class IndeterminateDocumentParent(DeckhandException):
# class SubstitutionDependencyCycle(DeckhandException):
# class MissingDocumentKey(DeckhandException):
# class MissingDocumentPattern(DeckhandException):
# class InvalidDocumentReplacement(DeckhandException):
# class UnsupportedActionMethod(DeckhandException):
# class RevisionTagBadFormat(DeckhandException):
# class SubstitutionSourceDataNotFound(DeckhandException):
# class DocumentNotFound(DeckhandException):
# class RevisionNotFound(DeckhandException):
# class RevisionTagNotFound(DeckhandException):
# class ValidationNotFound(DeckhandException):
# class DuplicateDocumentExists(DeckhandException):
# class SingletonDocumentConflict(DeckhandException):
# class LayeringPolicyNotFound(DeckhandException):
# class SubstitutionSourceNotFound(DeckhandException):
# class PolicyNotAuthorized(DeckhandException):
# class BarbicanException(DeckhandException):
# class UnknownSubstitutionError(DeckhandException):
# 
# Path: deckhand/tests/test_utils.py
# def rand_uuid_hex():
# def rand_name(name='', prefix='deckhand'):
# def rand_bool():
# def rand_int(min, max):
# def rand_password(length=15):
# 
# Path: deckhand/tests/unit/db/base.py
# BASE_EXPECTED_FIELDS = ("created_at", "updated_at", "deleted_at", "deleted")
# DOCUMENT_EXPECTED_FIELDS = BASE_EXPECTED_FIELDS + (
#     "id", "schema", "name", "layer", "metadata", "data", "data_hash",
#     "metadata_hash", "revision_id", "bucket_id")
# REVISION_EXPECTED_FIELDS = ("id", "documents", "tags")
# class DocumentFixture(object):
# class TestDbBase(base.DeckhandWithDBTestCase):
#     def get_minimal_fixture(**kwargs):
#     def get_minimal_multi_fixture(count=2, **kwargs):
#     def create_documents(self, bucket_name, documents,
#                          validation_policies=None):
#     def show_document(self, **fields):
#     def create_revision(self):
#     def show_revision(self, revision_id):
#     def delete_revisions(self):
#     def list_revision_documents(self, revision_id, **filters):
#     def list_revisions(self):
#     def rollback_revision(self, revision_id):
#     def create_validation(self, revision_id, val_name, val_data):
#     def _validate_object(self, obj):
#     def validate_document(self, actual, expected=None, is_deleted=False):
#     def validate_revision(self, revision):


# Path: deckhand/tests/unit/db/test_revisions.py
from deckhand import errors
from deckhand.tests import test_utils
from deckhand.tests.unit.db import base

        self.assertEqual(created_rev_id,
                         retrieved_revision['documents'][0]['revision_id'])

    def test_delete_all(self):
        all_created_documents = []
        all_revision_ids = []

        for _ in range(3):
            document_payload = [base.DocumentFixture.get_minimal_fixture()]
            bucket_name = test_utils.rand_name('bucket')
            created_documents = self.create_documents(
                bucket_name, document_payload)
            all_created_documents.extend(created_documents)
            revision_id = created_documents[0]['revision_id']
            all_revision_ids.append(revision_id)

        self.delete_revisions()

        # Validate that all revisions were deleted.
        for revision_id in all_revision_ids:
            error_re = (r'^The requested revision=%s was not found.$'
                        % revision_id)
            self.assertRaisesRegex(errors.RevisionNotFound, error_re,
                                   self.show_revision, revision_id)

        # Validate that the documents (children) were deleted.
        for doc in created_documents:
            filters = {'id': doc['id']}
            error_re = (r'^The requested document using filters: %s was not '
                        'found.$' % filters)

            self.assertRaisesRegex(errors.DocumentNotFound, error_re,