Clean up.

This commit is contained in:
Felipe Monteiro 2017-07-29 23:43:44 +01:00
parent 2d36f866a1
commit fdab717350
2 changed files with 6 additions and 71 deletions

View File

@ -115,7 +115,12 @@ def documents_create(documents, session=None):
def documents_create(values_list, session=None):
"""Create a document."""
"""Create a set of documents and associated schema.
If no changes are detected, a new revision will not be created. This
allows services to periodically re-register their schemas without
creating unnecessary revisions.
"""
values_list = copy.deepcopy(values_list)
session = session or get_session()
filters = models.Document.UNIQUE_CONSTRAINTS
@ -188,56 +193,3 @@ def revision_get(revision_id, session=None):
session = session or get_session()
revision = session.query(models.Revision).get(revision_id)
return revision.to_dict()
def revision_create_parent(child_document, session=None):
"""Create a parent revision.
Create a new (parent) revision that references whose ``child_id`` is
the ID of ``child_document``.
After this function has executed, the following relationship is true:
parent_document --> parent_revision
|
(has child)
v
child_document --> child_revision
:param child_document: The out-of-date document.
:param session: The database session.
:returns: The dictionary representation of the newly created revision.
"""
session = session or get_session()
parent_revision = models.Revision()
with session.begin():
parent_revision.update({'child_id': child_document['revision_id']})
parent_revision.save(session=session)
return parent_revision.to_dict()
def revision_update_child(child_document, parent_document, session=None):
"""Update the child revision for an out-of-date document.
After this function has executed, the following relationship is true:
parent_document --> parent_revision
| ^
(has child) (has parent)
v |
child_document --> child_revision
:param child_document: The out-of-date document.
:param parent_document: The up-to-date document.
:param session: The database session.
:returns: The dictionary representation of the ``child_revision``.
"""
session = session or get_session()
child_revision = session.query(models.Revision).get(
child_document['revision_id'])
with session.begin():
child_revision.update({'parent_id': parent_document['revision_id']})
child_revision.save(session=session)
return child_revision.to_dict()

View File

@ -98,23 +98,6 @@ class TestDocumentsApi(base.DeckhandWithDBTestCase):
for attr in REVISION_EXPECTED_FIELDS:
self.assertIn(attr, revision)
def _validate_revision_connections(self, parent_document, parent_revision,
child_document, child_revision,
parent_child_connected=True):
self.assertNotEqual(child_revision['id'], parent_revision['id'])
self.assertEqual(parent_document['revision_id'], parent_revision['id'])
self.assertEqual(child_document['revision_id'], child_revision['id'])
# Validate that the revisions are distinct and connected together.
if parent_child_connected:
self.assertEqual(parent_revision['child_id'], child_revision['id'])
self.assertEqual(
child_revision['parent_id'], parent_revision['id'])
# Validate that the revisions are distinct but unconnected.
else:
self.assertIsNone(parent_revision['child_id'])
self.assertIsNone(child_revision['parent_id'])
def test_create_and_get_document(self):
payload = DocumentFixture.get_minimal_fixture()
documents = self._create_documents(payload)