def test_draft_undelete(app, db, example_draft): """Test undeleting a draft.""" example_draft.delete() db.session.commit() draft = Draft.get_record(example_draft.id, with_deleted=True) assert draft.is_deleted draft.undelete() assert draft.parent.id == example_draft.parent.id
def test_draft_soft_delete(app, db, example_draft): """Test draft soft deletion.""" parent_id = example_draft.parent.id example_draft.delete(force=False) db.session.commit() # Parent not deleted, but draft is soft deleted. assert ParentRecord.get_record(parent_id) pytest.raises(NoResultFound, Draft.get_record, example_draft.id) draft = Draft.get_record(example_draft.id, with_deleted=True) assert draft.parent.id == parent_id
def test_draft_create_new_version(app, db, location): """Test draft creation of the parent record.""" # A published record. record = Record.publish(Draft.create({})) db.session.commit() # Create a draft for a new version (happens in service.new_version()) draft = Draft.new_version(record) draft.commit() db.session.commit() record = Record.get_record(record.id) draft = Draft.get_record(draft.id) assert record.id != draft.id # different uuids assert record.parent.id == draft.parent.id # same parent assert draft.versions.is_latest_draft is True assert draft.versions.is_latest is False assert record.versions.is_latest_draft is False assert record.versions.is_latest is True
def test_draft_create_parent_state(app, db, location): """Test draft creation of the parent record.""" draft = Draft.create({}) db.session.commit() # Assert that associated objects were created assert ParentState.query.count() == 1 assert DraftMetadata.query.count() == 1 assert ParentRecordMetadata.query.count() == 1 assert RecordMetadata.query.count() == 0 def assert_state(d): # An initial draft is not published, so latest_id/index is None assert d.model.index == 1 assert d.versions.index == 1 assert d.versions.latest_id is None assert d.versions.latest_index is None assert d.versions.next_draft_id == d.id assert_state(draft) assert_state(Draft.get_record(draft.id))
def test_draft_get_record(app, db, example_draft): """Test draft retrival.""" draft = Draft.get_record(example_draft.id) # Test that the parent record is properly fetched. assert draft.parent == example_draft.parent