Beispiel #1
0
    def test_my_org_issues(self):
        user = self.login()
        member = Member(user=user, role='editor')
        organization = OrganizationFactory(members=[member])
        reuse = ReuseFactory(owner=user)
        org_reuse = ReuseFactory(organization=organization)
        dataset = VisibleDatasetFactory(owner=user)
        org_dataset = VisibleDatasetFactory(organization=organization)

        issues = [
            DatasetIssue.objects.create(subject=dataset, title='', user=user),
            DatasetIssue.objects.create(subject=org_dataset,
                                        title='',
                                        user=user),
            ReuseIssue.objects.create(subject=reuse, title='', user=user),
            ReuseIssue.objects.create(subject=org_reuse, title='', user=user),
        ]

        # Should not be listed
        DatasetIssue.objects.create(subject=VisibleDatasetFactory(),
                                    title='',
                                    user=user)
        ReuseIssue.objects.create(subject=ReuseFactory(), title='', user=user)

        response = self.get(url_for('api.my_org_issues'))
        self.assert200(response)
        self.assertEqual(len(response.json), len(issues))
Beispiel #2
0
    def test_my_org_discussions_with_search(self):
        user = self.login()
        member = Member(user=user, role='editor')
        organization = OrganizationFactory(members=[member])
        reuse = ReuseFactory(owner=user)
        org_reuse = ReuseFactory(organization=organization)
        dataset = VisibleDatasetFactory(owner=user)
        org_dataset = VisibleDatasetFactory(organization=organization)

        discussions = [
            DatasetDiscussion.objects.create(subject=dataset,
                                             title='foo',
                                             user=user),
            ReuseDiscussion.objects.create(subject=org_reuse,
                                           title='foo',
                                           user=user),
        ]

        # Should not be listed.
        ReuseDiscussion.objects.create(subject=reuse, title='', user=user),
        DatasetDiscussion.objects.create(subject=org_dataset,
                                         title='',
                                         user=user),

        # Should really not be listed.
        DatasetDiscussion.objects.create(subject=VisibleDatasetFactory(),
                                         title='foo',
                                         user=user)
        ReuseDiscussion.objects.create(subject=ReuseFactory(),
                                       title='foo',
                                       user=user)

        response = self.get(url_for('api.my_org_discussions'), qs={'q': 'foo'})
        self.assert200(response)
        self.assertEqual(len(response.json), len(discussions))
Beispiel #3
0
    def test_reuses_csv(self):
        with self.autoindex():
            reuses = [ReuseFactory(datasets=[DatasetFactory()])
                      for _ in range(5)]
            hidden_reuse = ReuseFactory()

        response = self.get(url_for('site.reuses_csv'))

        self.assert200(response)
        self.assertEqual(response.mimetype, 'text/csv')
        self.assertEqual(response.charset, 'utf-8')

        csvfile = StringIO.StringIO(response.data)
        reader = csv.get_reader(csvfile)
        header = reader.next()

        self.assertEqual(header[0], 'id')
        self.assertIn('title', header)
        self.assertIn('description', header)
        self.assertIn('created_at', header)
        self.assertIn('last_modified', header)
        self.assertIn('tags', header)
        self.assertIn('metric.datasets', header)

        rows = list(reader)
        ids = [row[0] for row in rows]

        self.assertEqual(len(rows), len(reuses))
        for reuse in reuses:
            self.assertIn(str(reuse.id), ids)
        self.assertNotIn(str(hidden_reuse.id), ids)
Beispiel #4
0
    def test_my_org_reuses(self):
        user = self.login()
        member = Member(user=user, role='editor')
        organization = OrganizationFactory(members=[member])
        reuses = [ReuseFactory(owner=user) for _ in range(2)]
        org_reuses = [
            ReuseFactory(organization=organization) for _ in range(2)
        ]

        response = self.get(url_for('api.my_org_reuses'))
        self.assert200(response)
        self.assertEqual(len(response.json), len(reuses) + len(org_reuses))
Beispiel #5
0
    def test_render_home(self):
        '''It should render the home page'''
        for i in range(3):
            org = OrganizationFactory()
            DatasetFactory(organization=org)
            ReuseFactory(organization=org)

        current_site.settings.home_datasets = [
            DatasetFactory() for _ in range(3)]
        current_site.settings.home_reuses = [
            ReuseFactory() for _ in range(3)]

        response = self.get(url_for('site.home'))
        self.assert200(response)
Beispiel #6
0
    def test_my_reuses(self):
        user = self.login()
        reuses = [ReuseFactory(owner=user) for _ in range(3)]

        response = self.get(url_for('api.my_reuses'))
        self.assert200(response)

        self.assertEqual(len(response.json), len(reuses))
Beispiel #7
0
    def test_render_dataset_page(self):
        '''It should render the dataset page'''
        org = OrganizationFactory()
        dataset = DatasetFactory(organization=org)
        ReuseFactory(organization=org, datasets=[dataset])

        response = self.get(url_for('datasets.show', dataset=dataset))
        self.assert200(response)
Beispiel #8
0
 def test_render_metrics(self):
     '''It should render the search page'''
     for i in range(3):
         org = OrganizationFactory()
         DatasetFactory(organization=org)
         ReuseFactory(organization=org)
     response = self.get(url_for('site.dashboard'))
     self.assert200(response)
Beispiel #9
0
    def test_render_reuse_page(self):
        '''It should render the reuse page'''
        org = OrganizationFactory()
        dataset = DatasetFactory(organization=org)
        reuse = ReuseFactory(organization=org, datasets=[dataset])

        response = self.get(url_for('reuses.show', reuse=reuse))
        self.assert200(response)
Beispiel #10
0
    def test_reuses_csv_with_filters(self):
        '''Should handle filtering but ignore paging or facets'''
        with self.autoindex():
            filtered_reuses = [
                ReuseFactory(datasets=[DatasetFactory()], tags=['selected'])
                for _ in range(6)
            ]
            reuses = [
                ReuseFactory(datasets=[DatasetFactory()]) for _ in range(3)
            ]
            hidden_reuse = ReuseFactory()

        response = self.get(
            url_for('site.reuses_csv',
                    tag='selected',
                    page_size=3,
                    facets=True))

        self.assert200(response)
        self.assertEqual(response.mimetype, 'text/csv')
        self.assertEqual(response.charset, 'utf-8')

        csvfile = StringIO.StringIO(response.data)
        reader = csv.get_reader(csvfile)
        header = reader.next()

        self.assertEqual(header[0], 'id')
        self.assertIn('title', header)
        self.assertIn('description', header)
        self.assertIn('created_at', header)
        self.assertIn('last_modified', header)
        self.assertIn('tags', header)
        self.assertIn('metric.datasets', header)

        rows = list(reader)
        ids = [row[0] for row in rows]

        # Should ignore paging
        self.assertEqual(len(rows), len(filtered_reuses))
        # SHoulf pass filter
        for reuse in filtered_reuses:
            self.assertIn(str(reuse.id), ids)
        for reuse in reuses:
            self.assertNotIn(str(reuse.id), ids)
        self.assertNotIn(str(hidden_reuse.id), ids)
Beispiel #11
0
    def test_render_organization_page(self):
        '''It should render the organization page'''
        org = OrganizationFactory()
        datasets = [DatasetFactory(organization=org) for _ in range(3)]
        for dataset in datasets:
            ReuseFactory(organization=org, datasets=[dataset])

        response = self.get(url_for('organizations.show', org=org))
        self.assert200(response)
Beispiel #12
0
    def test_my_org_reuses_with_search(self):
        user = self.login()
        member = Member(user=user, role='editor')
        organization = OrganizationFactory(members=[member])
        reuses = [
            ReuseFactory(owner=user, title='foo'),
        ]
        org_reuses = [
            ReuseFactory(organization=organization, title='foo'),
        ]

        # Should not be listed.
        ReuseFactory(owner=user)
        ReuseFactory(organization=organization)

        response = self.get(url_for('api.my_org_reuses'), qs={'q': 'foo'})
        self.assert200(response)
        self.assertEqual(len(response.json), len(reuses) + len(org_reuses))
Beispiel #13
0
    def test_render_search(self):
        '''It should render the search page'''
        with self.autoindex():
            for i in range(3):
                org = OrganizationFactory()
                DatasetFactory(organization=org)
                ReuseFactory(organization=org)

        response = self.get(url_for('front.search'))
        self.assert200(response)
Beispiel #14
0
    def test_render_home(self):
        '''It should render the home page'''
        with self.autoindex():
            for i in range(3):
                org = OrganizationFactory()
                DatasetFactory(organization=org)
                ReuseFactory(organization=org)

        response = self.get(url_for('site.home'))
        self.assert200(response)