Clean up.
This commit is contained in:
parent
2d36f866a1
commit
fdab717350
|
@ -115,7 +115,12 @@ def documents_create(documents, session=None):
|
||||||
|
|
||||||
|
|
||||||
def documents_create(values_list, 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)
|
values_list = copy.deepcopy(values_list)
|
||||||
session = session or get_session()
|
session = session or get_session()
|
||||||
filters = models.Document.UNIQUE_CONSTRAINTS
|
filters = models.Document.UNIQUE_CONSTRAINTS
|
||||||
|
@ -188,56 +193,3 @@ def revision_get(revision_id, session=None):
|
||||||
session = session or get_session()
|
session = session or get_session()
|
||||||
revision = session.query(models.Revision).get(revision_id)
|
revision = session.query(models.Revision).get(revision_id)
|
||||||
return revision.to_dict()
|
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()
|
|
||||||
|
|
|
@ -98,23 +98,6 @@ class TestDocumentsApi(base.DeckhandWithDBTestCase):
|
||||||
for attr in REVISION_EXPECTED_FIELDS:
|
for attr in REVISION_EXPECTED_FIELDS:
|
||||||
self.assertIn(attr, revision)
|
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):
|
def test_create_and_get_document(self):
|
||||||
payload = DocumentFixture.get_minimal_fixture()
|
payload = DocumentFixture.get_minimal_fixture()
|
||||||
documents = self._create_documents(payload)
|
documents = self._create_documents(payload)
|
||||||
|
|
Loading…
Reference in New Issue