本文整理汇总了Python中tests.factories.PreprintFactory.add_contributor方法的典型用法代码示例。如果您正苦于以下问题:Python PreprintFactory.add_contributor方法的具体用法?Python PreprintFactory.add_contributor怎么用?Python PreprintFactory.add_contributor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tests.factories.PreprintFactory
的用法示例。
在下文中一共展示了PreprintFactory.add_contributor方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_read_write_user_already_a_preprint
# 需要导入模块: from tests.factories import PreprintFactory [as 别名]
# 或者: from tests.factories.PreprintFactory import add_contributor [as 别名]
def test_read_write_user_already_a_preprint(self):
assert_in(self.other_user, self.public_project.contributors)
preprint = PreprintFactory(creator=self.user)
preprint.add_contributor(self.other_user, permissions=[permissions.DEFAULT_CONTRIBUTOR_PERMISSIONS], save=True)
file_one_preprint = test_utils.create_test_file(preprint, self.user, 'openupthatwindow.pdf')
already_preprint_payload = build_preprint_create_payload(preprint._id, self.subject._id, file_one_preprint._id)
res = self.app.post_json_api(self.url, already_preprint_payload, auth=self.other_user.auth, expect_errors=True)
assert_equal(res.status_code, 403)
示例2: create_fake_project
# 需要导入模块: from tests.factories import PreprintFactory [as 别名]
# 或者: from tests.factories.PreprintFactory import add_contributor [as 别名]
def create_fake_project(creator, n_users, privacy, n_components, name, n_tags, presentation_name, is_registration, is_preprint, preprint_providers):
auth = Auth(user=creator)
project_title = name if name else fake.science_sentence()
if is_preprint:
providers_to_add = []
if preprint_providers:
providers = preprint_providers.split(',')
for provider in providers:
try:
preprint_provider = models.PreprintProvider.find_one(Q('_id', 'eq', provider))
except NoResultsFound:
preprint_provider = PreprintProviderFactory(name=provider)
providers_to_add.append(preprint_provider)
privacy = 'public'
project = PreprintFactory(title=project_title, description=fake.science_paragraph(), creator=creator, providers=providers_to_add)
elif is_registration:
project = RegistrationFactory(title=project_title, description=fake.science_paragraph(), creator=creator)
else:
project = ProjectFactory(title=project_title, description=fake.science_paragraph(), creator=creator)
project.set_privacy(privacy)
for _ in range(n_users):
contrib = create_fake_user()
project.add_contributor(contrib, auth=auth)
if isinstance(n_components, int):
for _ in range(n_components):
NodeFactory(project=project, title=fake.science_sentence(), description=fake.science_paragraph(),
creator=creator)
elif isinstance(n_components, list):
render_generations_from_node_structure_list(project, creator, n_components)
for _ in range(n_tags):
project.add_tag(fake.science_word(), auth=auth)
if presentation_name is not None:
project.add_tag(presentation_name, auth=auth)
project.add_tag('poster', auth=auth)
project.save()
logger.info('Created project: {0}'.format(project.title))
return project
示例3: TestPreprintRelationshipPreprintProvider
# 需要导入模块: from tests.factories import PreprintFactory [as 别名]
# 或者: from tests.factories.PreprintFactory import add_contributor [as 别名]
class TestPreprintRelationshipPreprintProvider(ApiTestCase):
def setUp(self):
super(TestPreprintRelationshipPreprintProvider, self).setUp()
self.user = AuthUserFactory()
self.read_write_user = AuthUserFactory()
self.preprint = PreprintFactory(creator=self.user, providers=None)
self.preprint.add_contributor(self.read_write_user)
self.preprint.save()
self.preprint_provider_one = PreprintProviderFactory()
self.preprint_provider_two = PreprintProviderFactory()
self.preprint_preprint_providers_url = self.create_url(self.preprint._id)
def create_url(self, preprint_id):
return '/{0}preprints/{1}/relationships/preprint_providers/'.format(API_BASE, preprint_id)
def create_payload(self, *preprint_provider_ids):
data = []
for provider_id in preprint_provider_ids:
data.append({'type': 'preprint_providers', 'id': provider_id})
return {'data': data}
def test_add_preprint_providers(self):
assert_equal(self.preprint.preprint_providers, None)
res = self.app.post_json_api(
self.preprint_preprint_providers_url,
self.create_payload(self.preprint_provider_one._id, self.preprint_provider_two._id),
auth=self.user.auth
)
assert_equal(res.status_code, 201)
# check the relationship
self.preprint.reload()
assert_in(self.preprint_provider_one, self.preprint.preprint_providers)
assert_in(self.preprint_provider_two, self.preprint.preprint_providers)
def test_add_through_patch_one_provider_while_removing_other(self):
self.preprint.preprint_providers = [self.preprint_provider_one]
self.preprint.save()
assert_in(self.preprint_provider_one, self.preprint.preprint_providers)
assert_not_in(self.preprint_provider_two, self.preprint.preprint_providers)
res = self.app.patch_json_api(
self.preprint_preprint_providers_url,
self.create_payload(self.preprint_provider_two._id),
auth=self.user.auth
)
assert_equal(res.status_code, 200)
self.preprint.reload()
assert_not_in(self.preprint_provider_one, self.preprint.preprint_providers)
assert_in(self.preprint_provider_two, self.preprint.preprint_providers)
def test_add_through_post_to_preprint_with_provider(self):
self.preprint.preprint_providers = [self.preprint_provider_one]
self.preprint.save()
assert_in(self.preprint_provider_one, self.preprint.preprint_providers)
assert_not_in(self.preprint_provider_two, self.preprint.preprint_providers)
res = self.app.post_json_api(
self.preprint_preprint_providers_url,
self.create_payload(self.preprint_provider_two._id),
auth=self.user.auth
)
assert_equal(res.status_code, 201)
self.preprint.reload()
assert_in(self.preprint_provider_one, self.preprint.preprint_providers)
assert_in(self.preprint_provider_two, self.preprint.preprint_providers)
def test_add_provider_with_no_permissions(self):
new_user = AuthUserFactory()
new_user.save()
res = self.app.post_json_api(
self.preprint_preprint_providers_url,
self.create_payload(self.preprint_provider_one._id),
auth=new_user.auth,
expect_errors=True,
)
assert_equal(res.status_code, 403)
def test_delete_nothing(self):
res = self.app.delete_json_api(
self.preprint_preprint_providers_url,
self.create_payload(),
auth=self.user.auth
)
assert_equal(res.status_code, 204)
def test_remove_providers(self):
self.preprint.preprint_providers = [self.preprint_provider_one]
self.preprint.save()
#.........这里部分代码省略.........
示例4: TestPreprintUpdate
# 需要导入模块: from tests.factories import PreprintFactory [as 别名]
# 或者: from tests.factories.PreprintFactory import add_contributor [as 别名]
#.........这里部分代码省略.........
relationships = {
"primary_file": {
"data": {
"type": "file",
"id": file_for_project._id
}
}
}
update_file_payload = build_preprint_update_payload(self.preprint._id, relationships=relationships)
res = self.app.patch_json_api(self.url, update_file_payload, auth=self.user.auth, expect_errors=True)
assert_equal(res.status_code, 400)
self.preprint.reload()
assert_not_equal(self.preprint.preprint_file, file_for_project)
def test_update_doi(self):
new_doi = '10.123/456/789'
assert_not_equal(self.preprint.preprint_doi, new_doi)
update_subjects_payload = build_preprint_update_payload(self.preprint._id, attributes={"doi": new_doi})
res = self.app.patch_json_api(self.url, update_subjects_payload, auth=self.user.auth)
assert_equal(res.status_code, 200)
self.preprint.reload()
assert_equal(self.preprint.preprint_doi, new_doi)
preprint_detail = self.app.get(self.url, auth=self.user.auth).json['data']
assert_equal(preprint_detail['links']['doi'], 'https://dx.doi.org/{}'.format(new_doi))
def test_write_contrib_cannot_set_preprint_file(self):
user_two = AuthUserFactory()
self.preprint.add_contributor(user_two, permissions=['read', 'write'], auth=Auth(self.user), save=True)
new_file = test_utils.create_test_file(self.preprint, 'openupthatwindow.pdf')
data = {
'data':{
'type': 'primary_file',
'id': self.preprint._id,
'attributes': {},
'relationships': {
'primary_file': {
'data': {
'type': 'file',
'id': new_file._id
}
}
}
}
}
res = self.app.patch_json_api(self.url, data, auth=user_two.auth, expect_errors=True)
assert_equal(res.status_code, 403)
def test_noncontrib_cannot_set_preprint_file(self):
user_two = AuthUserFactory()
new_file = test_utils.create_test_file(self.preprint, 'openupthatwindow.pdf')
data = {
'data':{
'type': 'primary_file',
'id': self.preprint._id,
'attributes': {},
'relationships': {
'primary_file': {