本文整理汇总了Python中invenio_communities.models.Community.accept_record方法的典型用法代码示例。如果您正苦于以下问题:Python Community.accept_record方法的具体用法?Python Community.accept_record怎么用?Python Community.accept_record使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类invenio_communities.models.Community
的用法示例。
在下文中一共展示了Community.accept_record方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_model_init
# 需要导入模块: from invenio_communities.models import Community [as 别名]
# 或者: from invenio_communities.models.Community import accept_record [as 别名]
def test_model_init(app):
"""Test basic model initialization and actions."""
with app.app_context():
# Init the User and the Community
user1 = create_test_user()
comm1 = Community(id='comm1', id_user=user1.id)
db.session.add(comm1)
db.session.commit()
communities_key = app.config["COMMUNITIES_RECORD_KEY"]
# Create a record and accept it into the community by creating an
# InclusionRequest and then calling the accept action
rec1 = Record.create({'title': 'Foobar'})
InclusionRequest.create(community=comm1, record=rec1)
assert InclusionRequest.query.count() == 1
comm1.accept_record(rec1)
assert 'comm1' in rec1[communities_key]
assert InclusionRequest.query.count() == 0
# Likewise, reject a record from the community
rec2 = Record.create({'title': 'Bazbar'})
InclusionRequest.create(community=comm1, record=rec2)
assert InclusionRequest.query.count() == 1
comm1.reject_record(rec2)
assert communities_key not in rec2 # dict key should not be created
assert InclusionRequest.query.count() == 0
# Add record to another community
comm2 = Community(id='comm2', id_user=user1.id)
db.session.add(comm2)
db.session.commit()
InclusionRequest.create(community=comm2, record=rec1)
comm2.accept_record(rec1)
assert communities_key in rec1
assert len(rec1[communities_key]) == 2
assert comm1.id in rec1[communities_key]
assert comm2.id in rec1[communities_key]
# Accept/reject a record to/from a community without inclusion request
rec3 = Record.create({'title': 'Spam'})
pytest.raises(InclusionRequestMissingError, comm1.accept_record, rec3)
pytest.raises(InclusionRequestMissingError, comm1.reject_record, rec3)
# Create two inclusion requests
comm3 = Community(id='comm3', id_user=user1.id)
db.session.add(comm3)
db.session.commit()
InclusionRequest.create(community=comm3, record=rec1)
pytest.raises(InclusionRequestExistsError, InclusionRequest.create,
community=comm3, record=rec1)
# Try to accept a record to a community twice (should raise)
# (comm1 is already in rec1)
pytest.raises(InclusionRequestObsoleteError, InclusionRequest.create,
community=comm1, record=rec1)