def _set_up_public_project_comment_reports(self): self.public_project = ProjectFactory.build(is_public=True, creator=self.user) self.public_project.add_contributor(contributor=self.contributor, save=True) self.public_comment = CommentFactory.build(node=self.public_project, target=self.public_project, user=self.contributor) self.public_comment.reports = {self.user._id: {'category': 'spam', 'text': 'This is spam'}} self.public_comment.save() self.public_url = '/{}comments/{}/reports/{}/'.format(API_BASE, self.public_comment._id, self.user._id)
def setUp(self): super(TestCallbacks, self).setUp() self.project = ProjectFactory.build() self.consolidated_auth = Auth(self.project.creator) self.non_authenticator = UserFactory() self.project.save() self.project.add_contributor( contributor=self.non_authenticator, auth=self.consolidated_auth, ) self.project.add_addon('github', auth=self.consolidated_auth) self.project.creator.add_addon('github') self.external_account = GitHubAccountFactory() self.project.creator.external_accounts.append(self.external_account) self.project.creator.save() self.node_settings = self.project.get_addon('github') self.user_settings = self.project.creator.get_addon('github') self.node_settings.user_settings = self.user_settings self.node_settings.user = '******' self.node_settings.repo = 'Sheer-Heart-Attack' self.node_settings.external_account = self.external_account self.node_settings.save() self.node_settings.set_auth
def _set_up_public_project_with_file_comment(self): self.public_project = ProjectFactory.build(is_public=True, creator=self.user, comment_level='private') self.public_project.add_contributor(self.contributor, save=True) self.public_file = test_utils.create_test_file(self.public_project, self.user) self.public_comment = CommentFactory(node=self.public_project, target=self.public_file, user=self.user) self.public_url = '/{}comments/{}/'.format(API_BASE, self.public_comment._id) self.public_comment_payload = self._set_up_payload(self.public_comment._id)
def create_fake_project(creator, n_users, privacy, n_components, name, n_tags, presentation_name): auth = Auth(user=creator) project_title = name if name else fake.science_sentence() project = ProjectFactory.build(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) for _ in range(n_components): NodeFactory(project=project, title=fake.science_sentence(), description=fake.science_paragraph(), creator=creator) 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
def test_deleted_projects_excluded(self): project = ProjectFactory.build() deleted = ProjectFactory(is_deleted=True) project.nodes.append(deleted) project.save() result = find_nested_projects() assert deleted not in result
def _set_up_private_project_file_comment_reports(self): self.private_project = ProjectFactory.build(is_public=False, creator=self.user) self.private_project.add_contributor(contributor=self.contributor, save=True) self.file = test_utils.create_test_file(self.private_project, self.user) self.comment = CommentFactory.build(node=self.private_project, target=self.file, user=self.contributor) self.comment.reports = self.comment.reports or {} self.comment.reports[self.user._id] = {'category': 'spam', 'text': 'This is spam'} self.comment.save() self.private_url = '/{}comments/{}/reports/'.format(API_BASE, self.comment._id)
def test_find_nested(self): project =ProjectFactory.build() nested_project = ProjectFactory() project.nodes.append(nested_project) project.save() result = find_nested_projects() assert nested_project in result assert project not in result
def test_find_nested(self): project = ProjectFactory.build() nested_project = ProjectFactory() project.nodes.append(nested_project) project.save() result = find_nested_projects() assert nested_project in result assert project not in result
def _set_up_public_project_comment_reply(self): self.public_project = ProjectFactory.build(is_public=True, creator=self.user) self.public_project.add_contributor(self.read_only_contributor, permissions=['read'], save=True) self.public_comment = CommentFactory(node=self.public_project, user=self.user) self.public_url = '/{}nodes/{}/comments/'.format( API_BASE, self.public_project._id) self.public_payload = self._set_up_payload(self.public_comment._id)
def _set_up_private_project_comment_reports(self): self.private_project = ProjectFactory.build(is_public=False, creator=self.user) self.private_project.add_contributor(contributor=self.contributor, save=True) self.comment = CommentFactory.build(node=self.private_project, target=self.private_project, user=self.contributor) self.comment.reports = {self.user._id: { 'category': 'spam', 'text': 'This is spam', 'date': datetime.utcnow(), 'retracted': False, }} self.comment.save() self.private_url = '/{}comments/{}/reports/{}/'.format(API_BASE, self.comment._id, self.user._id)
def _set_up_public_project_comment_reports(self, comment_level='public'): self.public_project = ProjectFactory.build(is_public=True, creator=self.user, comment_level=comment_level) self.public_project.add_contributor(contributor=self.contributor, save=True) self.public_comment = CommentFactory.build(node=self.public_project, target=self.public_project, user=self.contributor) self.public_comment.reports = self.public_comment.reports or {} self.public_comment.reports[self.user._id] = { 'category': 'spam', 'text': 'This is spam', 'date': datetime.utcnow(), 'retracted': False, } self.public_comment.save() self.public_url = '/{}comments/{}/reports/'.format(API_BASE, self.public_comment._id)
def _set_up_public_project_comment_reports(self, comment_level='public'): self.public_project = ProjectFactory.build(is_public=True, creator=self.user, comment_level=comment_level) self.public_project.add_contributor(contributor=self.contributor, save=True) self.public_comment = CommentFactory.build(node=self.public_project, user=self.contributor) self.public_comment.reports = self.public_comment.reports or {} self.public_comment.reports[self.user._id] = { 'category': 'spam', 'text': 'This is spam', 'date': datetime.utcnow(), 'retracted': False, } self.public_comment.save() self.public_url = '/{}comments/{}/reports/'.format(API_BASE, self.public_comment._id)
def _set_up_private_project_file_comment_reports(self): self.private_project = ProjectFactory.build(is_public=False, creator=self.user) self.private_project.add_contributor(contributor=self.contributor, save=True) self.file = test_utils.create_test_file(self.private_project, self.user) self.comment = CommentFactory.build(node=self.private_project, target=self.file, user=self.contributor) self.comment.reports = self.comment.reports or {} self.comment.reports[self.user._id] = { "category": "spam", "text": "This is spam", "date": datetime.utcnow(), "retracted": False, } self.comment.save() self.private_url = "/{}comments/{}/reports/".format(API_BASE, self.comment._id)
def test_serialize_private_node(self): user = UserFactory() auth = Auth(user=user) public = ProjectFactory.build(is_public=True) public.add_contributor(user) public.save() private = ProjectFactory(project=public, is_public=False) NodeFactory(project=private) collector = rubeus.NodeFileCollector(node=public, auth=auth) private_dummy = collector._serialize_node(private) assert_false(private_dummy['permissions']['edit']) assert_false(private_dummy['permissions']['view']) assert_equal(private_dummy['name'], 'Private Component') assert_equal(len(private_dummy['children']), 0)
def _set_up_public_project_with_comment(self): self.public_project = ProjectFactory.build(is_public=True, creator=self.user) self.public_project.add_contributor(self.contributor, save=True) self.public_comment = CommentFactory(node=self.public_project, target=self.public_project, user=self.user) self.public_url = '/{}comments/{}/'.format(API_BASE, self.public_comment._id) self.public_comment_payload = { 'data': { 'id': self.public_comment._id, 'type': 'comments', 'attributes': { 'content': 'Updating this comment', 'deleted': False } } }
def _set_up_public_project_comment_reports(self, comment_level="public"): self.public_project = ProjectFactory.build(is_public=True, creator=self.user, comment_level=comment_level) self.public_project.add_contributor(contributor=self.contributor, save=True) self.public_comment = CommentFactory.build( node=self.public_project, target=self.public_project, user=self.contributor ) self.public_comment.reports = self.public_comment.reports or {} self.public_comment.reports[self.user._id] = { "category": "spam", "text": "This is spam", "date": datetime.utcnow(), "retracted": False, } self.public_comment.save() self.public_url = "/{}comments/{}/reports/".format(API_BASE, self.public_comment._id)
def setUp(self): super(TestRegistrationsWithGithub, self).setUp() self.project = ProjectFactory.build() self.project.save() self.consolidated_auth = Auth(user=self.project.creator) self.project.add_addon('github', auth=self.consolidated_auth) self.project.creator.add_addon('github') self.node_settings = self.project.get_addon('github') self.user_settings = self.project.creator.get_addon('github') self.node_settings.user_settings = self.user_settings self.node_settings.user = '******' self.node_settings.repo = 'Sheer-Heart-Attack' self.node_settings.save()
def test_serialize_private_node(self): user = UserFactory() auth = Auth(user=user) public = ProjectFactory.build(is_public=True) # Add contributor with write permissions to avoid admin permission cascade public.add_contributor(user, permissions=["read", "write"]) public.save() private = ProjectFactory(parent=public, is_public=False) NodeFactory(parent=private) collector = rubeus.NodeFileCollector(node=public, auth=auth) private_dummy = collector._serialize_node(private) assert_false(private_dummy["permissions"]["edit"]) assert_false(private_dummy["permissions"]["view"]) assert_equal(private_dummy["name"], "Private Component") assert_equal(len(private_dummy["children"]), 0)
def create_fake_project(creator, n_users, privacy, n_components, name, n_tags): auth = Auth(user=creator) project_title = name if name else fake.science_sentence() project = ProjectFactory.build(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) for _ in range(n_components): NodeFactory(project=project, title=fake.science_sentence(), description=fake.science_paragraph(), creator=creator) for _ in range(n_tags): project.add_tag(fake.science_word(), auth=auth) project.save() logger.info('Created project: {0}'.format(project.title)) return project
def setUp(self): super(TestGithubSettings, self).setUp() self.github = create_mock_github(user='******', private=False) self.project = ProjectFactory.build() self.project.save() self.auth = self.project.creator.auth self.consolidated_auth = Auth(user=self.project.creator) self.project.add_addon('github', auth=self.consolidated_auth) self.project.creator.add_addon('github') self.node_settings = self.project.get_addon('github') self.user_settings = self.project.creator.get_addon('github') self.node_settings.user_settings = self.user_settings self.node_settings.user = '******' self.node_settings.repo = 'Sheer-Heart-Attack' self.node_settings.save()
def setUp(self): super(TestCallbacks, self).setUp() self.project = ProjectFactory.build() self.consolidated_auth = Auth(self.project.creator) self.non_authenticator = UserFactory() self.project.save() self.project.add_contributor(contributor=self.non_authenticator, auth=self.consolidated_auth) self.project.add_addon("github", auth=self.consolidated_auth) self.project.creator.add_addon("github") self.node_settings = self.project.get_addon("github") self.user_settings = self.project.creator.get_addon("github") self.node_settings.user_settings = self.user_settings self.node_settings.user = "******" self.node_settings.repo = "Sheer-Heart-Attack" self.node_settings.save()
def setUp(self): super(TestRubeus, self).setUp() self.project = ProjectFactory.build() self.consolidated_auth = Auth(user=self.project.creator) self.non_authenticator = UserFactory() self.project.save() self.project.add_contributor(contributor=self.non_authenticator, auth=self.consolidated_auth) self.project.add_addon("s3", self.consolidated_auth) self.project.creator.add_addon("s3", self.consolidated_auth) self.node_settings = self.project.get_addon("s3") self.user_settings = self.project.creator.get_addon("s3") self.user_settings.access_key = "We-Will-Rock-You" self.user_settings.secret_key = "Idontknowanyqueensongs" self.node_settings.bucket = "Sheer-Heart-Attack" self.node_settings.user_settings = self.user_settings self.node_settings.save()
def setUp(self): super(TestRubeus, self).setUp() self.project = ProjectFactory.build() self.consolidated_auth = Auth(user=self.project.creator) self.non_authenticator = UserFactory() self.project.save() self.project.add_contributor( contributor=self.non_authenticator, auth=self.consolidated_auth, ) self.project.add_addon('s3', self.consolidated_auth) self.project.creator.add_addon('s3', self.consolidated_auth) self.node_settings = self.project.get_addon('s3') self.user_settings = self.project.creator.get_addon('s3') self.user_settings.access_key = 'We-Will-Rock-You' self.user_settings.secret_key = 'Idontknowanyqueensongs' self.node_settings.bucket = 'Sheer-Heart-Attack' self.node_settings.user_settings = self.user_settings self.node_settings.save()
def setUp(self): super(TestCallbacks, self).setUp() self.project = ProjectFactory.build() self.consolidated_auth = Auth(user=self.project.creator) self.non_authenticator = UserFactory() self.project.add_contributor( contributor=self.non_authenticator, auth=Auth(self.project.creator), ) self.project.save() self.project.add_addon('s3', auth=self.consolidated_auth) self.project.creator.add_addon('s3') self.node_settings = self.project.get_addon('s3') self.user_settings = self.project.creator.get_addon('s3') self.user_settings.access_key = 'We-Will-Rock-You' self.user_settings.secret_key = 'Idontknowanyqueensongs' self.node_settings.bucket = 'Sheer-Heart-Attack' self.node_settings.user_settings = self.user_settings self.node_settings.save()
def setUp(self): self.project = ProjectFactory.build() self.project.id = 1 self.repository = RepositoryFactory.build() self.repositories = [self.repository]
def _set_up_public_project_comment_reply(self): self.public_project = ProjectFactory.build(is_public=True, creator=self.user) self.public_project.add_contributor(self.read_only_contributor, permissions=['read'], save=True) self.public_comment = CommentFactory(node=self.public_project, user=self.user) self.public_url = '/{}nodes/{}/comments/'.format(API_BASE, self.public_project._id) self.public_payload = self._set_up_payload(self.public_comment._id)