Ejemplo n.º 1
0
    def setUp(self):
        # feincms page containing zipfelchappe app content
        self.page = Page.objects.create(title="Projects", slug="projects")
        ct = self.page.content_type_for(ApplicationContent)
        ct.objects.create(parent=self.page, urlconf_path=app_settings.ROOT_URLS)

        # Fixture Data for following tests
        self.project1 = ProjectFactory.create()
        self.project2 = ProjectFactory.create()
        self.user = UserFactory.create()
        self.admin = UserFactory.create(is_superuser=True, is_staff=True)
        self.reward = RewardFactory.create(project=self.project1, minimum=20.00, quantity=1)

        # Fresh Client for every test
        self.client = Client()
Ejemplo n.º 2
0
 def test_postfinance_max_duration(self):
     now = timezone.now()
     project = ProjectFactory.create(start=now)
     project.end = now + timedelta(days=31)
     self.assertRaises(ValidationError, project.full_clean)
     project.end = now + timedelta(days=29)
     project.full_clean()
Ejemplo n.º 3
0
 def _set_up_public_project_with_comment(self):
     self.public_project = ProjectFactory.create(is_public=True, creator=self.user, comment_level='private')
     self.public_project.add_contributor(self.contributor, save=True)
     self.public_wiki = NodeWikiFactory(node=self.public_project, user=self.user)
     self.public_comment = CommentFactory(node=self.public_project, target=Guid.load(self.public_wiki._id), 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)
Ejemplo n.º 4
0
 def setup(self, session):
     self.dummy_instance = ProjectFactory.create()
     self.model = Project(
         id=self.dummy_instance.id,
         description=self.dummy_instance.description,
     )
     self.model_attributes = ['id', 'description']
Ejemplo n.º 5
0
 def _set_up_public_project_with_comment(self):
     self.public_project = ProjectFactory.create(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.get_guid(), 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)
Ejemplo n.º 6
0
 def _set_up_private_project_with_comment(self):
     self.private_project = ProjectFactory.create(is_public=False, creator=self.user, comment_level='private')
     self.private_project.add_contributor(self.contributor, save=True)
     self.file = test_utils.create_test_file(self.private_project, self.user)
     self.comment = CommentFactory(node=self.private_project, target=self.file.get_guid(), user=self.user)
     self.private_url = '/{}comments/{}/'.format(API_BASE, self.comment._id)
     self.payload = self._set_up_payload(self.comment._id)
Ejemplo n.º 7
0
 def test_postfinance_max_duration(self):
     now = timezone.now()
     project = ProjectFactory.create(start=now)
     project.end = now + timedelta(days=31)
     self.assertRaises(ValidationError, project.full_clean)
     project.end = now + timedelta(days=29)
     project.full_clean()
Ejemplo n.º 8
0
    def test_list_prints_id_title_and_project_if_project_existent(self):
        project = ProjectFactory.create()
        tasks = TaskFactory.create_batch(2, state='open')
        tasks[0].project = project
        self.session.commit()

        id_index = self.columns.index('id')
        project_index = self.columns.index('project_id')

        columns = [
            self.columns[id_index],
            self.columns[project_index],
        ]
        labels = [
            self.labels[id_index],
            self.labels[project_index],
        ]

        self.report.print(columns=columns, labels=labels)

        # Prepare desired report
        report_data = []
        for task in sorted(tasks, key=lambda k: k.id, reverse=True):
            task_report = []
            for attribute in columns:
                if attribute == 'id':
                    task_report.append(task.sulid)
                else:
                    task_report.append(task.__getattribute__(attribute))
            report_data.append(task_report)

        self.tabulate.assert_called_once_with(report_data,
                                              headers=labels,
                                              tablefmt='simple')
        self.print.assert_called_once_with(self.tabulate.return_value)
Ejemplo n.º 9
0
 def _set_up_private_project_with_comment(self):
     self.private_project = ProjectFactory.create(is_public=False, creator=self.user, comment_level='private')
     self.private_project.add_contributor(self.contributor, save=True)
     self.wiki = NodeWikiFactory(node=self.private_project, user=self.user)
     self.comment = CommentFactory(node=self.private_project, target=Guid.load(self.wiki._id), user=self.user)
     self.private_url = '/{}comments/{}/'.format(API_BASE, self.comment._id)
     self.payload = self._set_up_payload(self.comment._id)
Ejemplo n.º 10
0
    def setUp(self):
        # feincms page containing zipfelchappe app content
        self.page = Page.objects.create(title='Projects', slug='projects')
        ct = self.page.content_type_for(ApplicationContent)
        ct.objects.create(parent=self.page,
                          urlconf_path=app_settings.ROOT_URLS)

        # Fixture Data for following tests
        self.project1 = ProjectFactory.create()
        self.project2 = ProjectFactory.create()
        self.user = UserFactory.create()
        self.reward = RewardFactory.create(project=self.project1,
                                           minimum=20.00,
                                           quantity=2)

        # Fresh Client for every test
        self.client = Client()
Ejemplo n.º 11
0
 def setUp(self):
     self.project = ProjectFactory.create()
     self.user = UserFactory.create()
     self.backer = BackerFactory.create(user=self.user)
     self.p1 = PledgeFactory.create(
         project=self.project,
         amount=10.00,
     )
Ejemplo n.º 12
0
    def test_add_task_assigns_project_if_exist(self):
        project = ProjectFactory.create()
        title = self.fake.sentence()

        self.manager.add(title=title, project_id=project.id)

        generated_task = self.session.query(Task).one()
        assert generated_task.project is project
Ejemplo n.º 13
0
 def _set_up_public_project_with_comment(self):
     self.public_project = ProjectFactory.create(is_public=True, creator=self.user)
     self.public_project.add_contributor(self.contributor, save=True)
     self.public_comment = CommentFactory(node=self.public_project, user=self.user)
     reply_target = Guid.load(self.public_comment._id)
     self.public_comment_reply = CommentFactory(node=self.public_project, target=reply_target, 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)
Ejemplo n.º 14
0
 def _set_up_private_project_with_comment(self):
     self.private_project = ProjectFactory.create(is_public=False,
                                                  creator=self.user)
     self.private_project.add_contributor(self.contributor, save=True)
     self.comment = CommentFactory(node=self.private_project,
                                   user=self.user)
     self.private_url = '/{}comments/{}/'.format(API_BASE, self.comment._id)
     self.payload = self._set_up_payload(self.comment._id)
Ejemplo n.º 15
0
    def test_report_does_not_print_projects_without_tasks(self):
        project = ProjectFactory.create()

        # empty project
        ProjectFactory.create()

        # Project assignment
        for task in self.tasks:
            task.project = project
        self.session.commit()

        self.report.print(columns=self.columns, labels=self.labels)

        self.tabulate.assert_called_once_with([
            [project.id, 20, project.description],
        ],
                                              headers=self.labels,
                                              tablefmt='simple')
        self.print.assert_called_once_with(self.tabulate.return_value)
Ejemplo n.º 16
0
 def test_default_max_duration(self):
     global payment_providers
     pf = payment_providers['postfinance']
     del payment_providers['postfinance']
     project = ProjectFactory.create()
     self.assertEqual(app_settings.MAX_PROJECT_DURATION_DAYS, 120)
     project.end = timezone.now() + timedelta(days=121)
     self.assertRaises(ValidationError, project.full_clean)
     project.end = timezone.now() + timedelta(days=119)
     project.full_clean()
     payment_providers['postfinance'] = pf
Ejemplo n.º 17
0
    def setUp(self):
        self.project = ProjectFactory.create()

        self.p1 = PledgeFactory.create(
            project=self.project,
            amount=10.00,
        )

        self.p2 = PledgeFactory.create(project=self.project,
                                       amount=20.00,
                                       anonymously=True)
Ejemplo n.º 18
0
 def test_default_max_duration(self):
     global payment_providers
     pf = payment_providers['postfinance']
     del payment_providers['postfinance']
     project = ProjectFactory.create()
     self.assertEqual(app_settings.MAX_PROJECT_DURATION_DAYS, 120)
     project.end = timezone.now() + timedelta(days=121)
     self.assertRaises(ValidationError, project.full_clean)
     project.end = timezone.now() + timedelta(days=119)
     project.full_clean()
     payment_providers['postfinance'] = pf
Ejemplo n.º 19
0
 def _set_up_public_project_comment_reports(self):
     self.public_project = ProjectFactory.create(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, user=self.contributor)
     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, self.user._id)
Ejemplo n.º 20
0
 def _set_up_public_project_comment_reports(self, comment_level='public'):
     self.public_project = ProjectFactory.create(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)
Ejemplo n.º 21
0
    def setUp(self):
        self.project = ProjectFactory.create()

        self.p1 = PledgeFactory.create(
            project=self.project,
            amount=10.00,
        )

        self.p2 = PledgeFactory.create(
            project=self.project,
            amount=20.00,
            anonymously=True
        )
Ejemplo n.º 22
0
    def test_report_does_not_print_projects_without_open_tasks(self):
        project = ProjectFactory.create()
        project_with_closed_tasks = ProjectFactory.create()

        completed_task = TaskFactory.create(state='completed')
        completed_task.project = project_with_closed_tasks
        deleted_task = TaskFactory.create(state='deleted')
        deleted_task.project = project_with_closed_tasks

        # Project assignment
        for task in self.tasks:
            task.project = project
        self.session.commit()

        self.report.print(columns=self.columns, labels=self.labels)

        self.tabulate.assert_called_once_with([
            [project.id, 20, project.description],
        ],
                                              headers=self.labels,
                                              tablefmt='simple')
        self.print.assert_called_once_with(self.tabulate.return_value)
Ejemplo n.º 23
0
 def _set_up_private_project_file_comment_reports(self):
     self.private_project = ProjectFactory.create(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.get_guid(), 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)
Ejemplo n.º 24
0
    def setUp(self):
        self.project = ProjectFactory.create()

        self.reward = RewardFactory.create(project=self.project,
                                           minimum=20.00,
                                           quantity=5)

        self.p1 = PledgeFactory.create(project=self.project,
                                       amount=25.00,
                                       reward=self.reward)

        # Payment is not saved yet
        self.p2 = PledgeFactory.build(project=self.project,
                                      amount=20.00,
                                      reward=self.reward)
Ejemplo n.º 25
0
 def _set_up_public_project_with_comment(self):
     self.public_project = ProjectFactory.create(is_public=True, creator=self.user)
     self.public_project.add_contributor(self.contributor, save=True)
     self.public_comment = CommentFactory(node=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
             }
         }
     }
Ejemplo n.º 26
0
    def test_serialize_private_node(self):
        user = UserFactory()
        auth = Auth(user=user)
        public = ProjectFactory.create(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)
Ejemplo n.º 27
0
    def test_serialize_private_node(self):
        user = UserFactory()
        auth = Auth(user=user)
        public = ProjectFactory.create(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)
Ejemplo n.º 28
0
    def setUp(self):
        # feincms page containing zipfelchappe app content
        self.page = Page.objects.create(title='Projects',
                                        slug='projects',
                                        override_url='/')
        ct = self.page.content_type_for(ApplicationContent)
        ct.objects.create(parent=self.page,
                          urlconf_path=app_settings.ROOT_URLS)

        self.project = ProjectFactory.create()
        self.p1 = PledgeFactory.create(project=self.project,
                                       amount=10,
                                       provider='postfinance')
        self.user = UserFactory.create(first_name='Hans', last_name='Muster')
        self.p1.backer.user = self.user
        self.p1.backer.save()
        self.client = self.get_client_with_session()
Ejemplo n.º 29
0
    def setUp(self):
        # feincms page containing zipfelchappe app content
        self.page = Page.objects.create(title='Projects', slug='projects', override_url='/')
        ct = self.page.content_type_for(ApplicationContent)
        ct.objects.create(parent=self.page, urlconf_path=app_settings.ROOT_URLS)

        self.project = ProjectFactory.create()
        self.p1 = PledgeFactory.create(
            project=self.project,
            amount=10,
            provider='postfinance'
        )
        self.user = UserFactory.create(
            first_name='Hans',
            last_name='Muster'
        )
        self.p1.backer.user = self.user
        self.p1.backer.save()
        self.client = self.get_client_with_session()
Ejemplo n.º 30
0
 def _set_up_private_project_comment_reports(self):
     self.private_project = ProjectFactory.create(is_public=False,
                                                  creator=self.user)
     self.private_project.add_contributor(contributor=self.contributor,
                                          save=True)
     self.wiki = NodeWikiFactory(node=self.private_project, user=self.user)
     self.comment = CommentFactory.build(node=self.private_project,
                                         target=Guid.load(self.wiki._id),
                                         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)
Ejemplo n.º 31
0
    def test_report_does_not_count_completed_tasks_in_projects(self):
        project = ProjectFactory.create()

        # Project assignment
        for task in self.tasks:
            task.project = project

        # Complete one task
        self.tasks[0].state = 'completed'
        self.tasks[1].state = 'deleted'
        self.session.commit()

        self.report.print(columns=self.columns, labels=self.labels)

        self.tabulate.assert_called_once_with([
            [project.id, 18, project.description],
        ],
                                              headers=self.labels,
                                              tablefmt='simple')
        self.print.assert_called_once_with(self.tabulate.return_value)
Ejemplo n.º 32
0
    def setUp(self):
        self.project = ProjectFactory.create()

        self.reward = RewardFactory.create(
            project=self.project,
            minimum=20.00,
            quantity=5
        )

        self.p1 = PledgeFactory.create(
            project=self.project,
            amount=25.00,
            reward=self.reward
        )

        # Payment is not saved yet
        self.p2 = PledgeFactory.build(
            project=self.project,
            amount=20.00,
            reward=self.reward
        )
Ejemplo n.º 33
0
    def setUp(self):

        super(TestRubeus, self).setUp()

        self.project = ProjectFactory.create()
        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()
Ejemplo n.º 34
0
 def _set_up_public_project_comment_reports(self, comment_level='public'):
     self.public_project = ProjectFactory.create(
         is_public=True, creator=self.user, comment_level=comment_level)
     self.public_project.add_contributor(contributor=self.contributor,
                                         save=True)
     self.public_file = test_utils.create_test_file(self.public_project,
                                                    self.user)
     self.public_comment = CommentFactory.build(
         node=self.public_project,
         target=self.public_file.get_guid(),
         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)
Ejemplo n.º 35
0
    def setUp(self):

        super(TestRubeus, self).setUp()

        self.project = ProjectFactory.create()
        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()