Exemple #1
0
    def test_dataportal_compliance(self, fmt, client):
        url = url_for('site.dataportal', format=fmt)
        assert url == '/data.{0}'.format(fmt)
        expected_url = url_for('site.rdf_catalog_format', format=fmt)

        response = client.get(url)
        assert_redirects(response, expected_url)
Exemple #2
0
    def test_dataportal_compliance(self, fmt, client):
        url = url_for('site.dataportal', format=fmt)
        assert url == '/data.{0}'.format(fmt)
        expected_url = url_for('site.rdf_catalog_format', format=fmt)

        response = client.get(url)
        assert_redirects(response, expected_url)
Exemple #3
0
    def test_last_slug_has_priority(self, client):
        tester = self.model.objects.create(slug='first')
        first_url = url_for('model_tester', model=tester)

        tester.slug = 'second'
        tester.save().reload()
        second_url = url_for('model_tester', model=tester)

        tester.slug = 'third'
        tester.save().reload()
        third_url = url_for('model_tester', model=tester)

        new_tester = self.model.objects.create(slug='second')
        # Second slug should not be redirected anymore
        assert200(client.get(second_url))

        new_tester.slug = 'last'
        new_tester.save().reload()
        last_url = url_for('model_tester', model=new_tester)

        # Current state should be:
        # - first redirects to third (tester)
        # - second redirects to last (new tester)
        # - third display tester
        # - last display new tester

        # Display or redirect to new_tester
        assert200(client.get(last_url))
        assert_redirects(client.get(second_url), last_url)
        # Display or redirect to tester
        assert200(client.get(third_url))
        assert_redirects(client.get(first_url), third_url)
 def test_rdf_default_to_jsonld(self, client):
     dataset = DatasetFactory()
     expected = url_for('datasets.rdf_format',
                        dataset=dataset.id,
                        format='json')
     response = client.get(url_for('datasets.rdf', dataset=dataset))
     assert_redirects(response, expected)
Exemple #5
0
    def test_last_slug_has_priority(self, client):
        tester = self.model.objects.create(slug='first')
        first_url = url_for('model_tester', model=tester)

        tester.slug = 'second'
        tester.save().reload()
        second_url = url_for('model_tester', model=tester)

        tester.slug = 'third'
        tester.save().reload()
        third_url = url_for('model_tester', model=tester)

        new_tester = self.model.objects.create(slug='second')
        # Second slug should not be redirected anymore
        assert200(client.get(second_url))

        new_tester.slug = 'last'
        new_tester.save().reload()
        last_url = url_for('model_tester', model=new_tester)

        # Current state should be:
        # - first redirects to third (tester)
        # - second redirects to last (new tester)
        # - third display tester
        # - last display new tester

        # Display or redirect to new_tester
        assert200(client.get(last_url))
        assert_redirects(client.get(second_url), last_url)
        # Display or redirect to tester
        assert200(client.get(third_url))
        assert_redirects(client.get(first_url), third_url)
Exemple #6
0
 def test_rdf_perform_content_negociation(self, client):
     dataset = DatasetFactory()
     expected = url_for('datasets.rdf_format',
                        dataset=dataset.id, format='xml')
     url = url_for('datasets.rdf', dataset=dataset)
     headers = {'accept': 'application/xml'}
     response = client.get(url, headers=headers)
     assert_redirects(response, expected)
Exemple #7
0
    def test_renaming_redirect(self, client):
        tester = self.model.objects.create(slug='old')
        old_url = url_for('model_tester', model=tester)
        assert200(client.get(old_url))

        tester.slug = 'new'
        tester.save().reload()

        new_url = url_for('model_tester', model=tester)
        assert200(client.get(new_url))
        assert_redirects(client.get(old_url), new_url)
Exemple #8
0
def test_auth_with_email_and_password_and_next(client, ldap):
    post_url = url_for('ldap.login')
    next_url = url_for('site.dashboard')

    response = client.post(post_url, {
        'username': EMAIL,
        'password': PASSWORD,
        'next': next_url,
    })

    assert_redirects(response, next_url)
Exemple #9
0
    def test_renaming_redirect(self, client):
        tester = self.model.objects.create(slug='old')
        old_url = url_for('model_tester', model=tester)
        assert200(client.get(old_url))

        tester.slug = 'new'
        tester.save().reload()

        new_url = url_for('model_tester', model=tester)
        assert200(client.get(new_url))
        assert_redirects(client.get(old_url), new_url)
Exemple #10
0
def test_login_redirect_to_ldap_with_unicode(client):
    '''Login should redirect to LDAP login page and support unicode'''
    next_url = 'http://someurl/é€'
    message = 'You should log in'
    expected_url = url_for('ldap.login', next=next_url, message=message)

    response = client.get(
        url_for('security.login', next=next_url, message=message))

    assert_redirects(response, expected_url)

    response_url = urlparse(response.location)
    qs = parse_qs(response_url.query)

    assert qs['next'][0].decode('utf-8') == next_url
    assert qs['message'][0] == message
Exemple #11
0
def test_auth_with_email_and_password(client, ldap):
    post_url = url_for('ldap.login')

    response = client.post(post_url, {
        'username': EMAIL,
        'password': PASSWORD,
    })

    assert_redirects(response, url_for('site.home'))

    assert User.objects.count() == 1

    user = User.objects.first()
    assert user.email == EMAIL
    assert user.first_name == FIRST_NAME
    assert user.last_name == LAST_NAME
    assert user.active
Exemple #12
0
def test_login_redirect_to_ldap_with_path_only(app, client):
    '''Login should redirect to ldap login and support unicode'''
    hostname = app.config['SERVER_NAME']
    next_url = '/é€'
    absolute_next_url = 'http://{0}{1}'.format(hostname, next_url)
    message = 'You should log in'
    expected_url = url_for('ldap.login',
                           next=absolute_next_url,
                           message=message)

    response = client.get(
        url_for('security.login', next=next_url, message=message))

    assert_redirects(response, expected_url)

    response_url = urlparse(response.location)
    qs = parse_qs(response_url.query)

    assert qs['next'][0].decode('utf-8') == absolute_next_url
    assert qs['message'][0] == message
Exemple #13
0
    def test_multiple_renaming_redirect(self, client):
        tester = self.model.objects.create(slug='first')
        first_url = url_for('model_tester', model=tester)

        tester.slug = 'second'
        tester.save().reload()
        second_url = url_for('model_tester', model=tester)
        assert200(client.get(second_url))
        assert_redirects(client.get(first_url), second_url)

        tester.slug = 'last'
        tester.save().reload()
        last_url = url_for('model_tester', model=tester)
        assert200(client.get(last_url))
        assert_redirects(client.get(first_url), last_url)
        assert_redirects(client.get(second_url), last_url)
Exemple #14
0
    def test_multiple_renaming_redirect(self, client):
        tester = self.model.objects.create(slug='first')
        first_url = url_for('model_tester', model=tester)

        tester.slug = 'second'
        tester.save().reload()
        second_url = url_for('model_tester', model=tester)
        assert200(client.get(second_url))
        assert_redirects(client.get(first_url), second_url)

        tester.slug = 'last'
        tester.save().reload()
        last_url = url_for('model_tester', model=tester)
        assert200(client.get(last_url))
        assert_redirects(client.get(first_url), last_url)
        assert_redirects(client.get(second_url), last_url)
Exemple #15
0
 def test_redirect_datasets(self, client):
     dataset = DatasetFactory()
     response = client.get('/en/dataset/%s/' % dataset.slug)
     assert_redirects(response, url_for('datasets.show', dataset=dataset))
Exemple #16
0
 def test_redirect_topics(self, client):
     response = client.get('/en/group/societe/')
     assert_redirects(response, url_for('topics.display', topic='societe'))
Exemple #17
0
 def test_redirect_to_normalized_utf8_slug(self, client):
     slug = 'slüg'
     url = url_for('model_tester', model=slug)
     self.model.objects.create(slug=slug)
     assert_redirects(client.get('/model/slüg'), url)
Exemple #18
0
 def test_redirect_c3(self, client):
     response = client.get(url_for('gouvfr.c3'))
     assert_redirects(response, '/en/climate-change-challenge')
Exemple #19
0
 def test_redirect_to_last_dataconnexions(self, client):
     response = client.get(url_for('gouvfr.dataconnexions'))
     assert_redirects(response, url_for('gouvfr.dataconnexions6'))
Exemple #20
0
 def test_redirect_organization_list(self, client):
     response = client.get('/en/organization/')
     assert_redirects(response, url_for('organizations.list'))
Exemple #21
0
 def test_redirect_to_normalized_utf8_slug(self, client):
     slug = 'slüg'
     url = url_for('model_tester', model=slug)
     self.model.objects.create(slug=slug)
     assert_redirects(client.get('/model/slüg'), url)
Exemple #22
0
 def test_rdf_default_to_jsonld(self, client):
     dataset = DatasetFactory()
     expected = url_for('datasets.rdf_format',
                        dataset=dataset.id, format='json')
     response = client.get(url_for('datasets.rdf', dataset=dataset))
     assert_redirects(response, expected)
Exemple #23
0
 def test_rdf_perform_content_negociation(self, client):
     expected = url_for('site.rdf_catalog_format', format='xml')
     url = url_for('site.rdf_catalog')
     headers = {'accept': 'application/xml'}
     response = client.get(url, headers=headers)
     assert_redirects(response, expected)
Exemple #24
0
 def test_rdf_perform_content_negociation(self, client):
     expected = url_for('site.rdf_catalog_format', format='xml')
     url = url_for('site.rdf_catalog')
     headers = {'accept': 'application/xml'}
     response = client.get(url, headers=headers)
     assert_redirects(response, expected)
Exemple #25
0
 def test_catalog_default_to_jsonld(self, client):
     expected = url_for('site.rdf_catalog_format', format='json')
     response = client.get(url_for('site.rdf_catalog'))
     assert_redirects(response, expected)
Exemple #26
0
 def test_redirect_c3(self, client):
     response = client.get(url_for('gouvfr.c3'))
     assert_redirects(response, '/en/climate-change-challenge')
Exemple #27
0
 def test_redirect_to_last_dataconnexions(self, client):
     response = client.get(url_for('gouvfr.dataconnexions'))
     assert_redirects(response, url_for('gouvfr.dataconnexions6'))
Exemple #28
0
 def test_redirect_organization_list(self, client):
     response = client.get('/en/organization/')
     assert_redirects(response, url_for('organizations.list'))
Exemple #29
0
 def test_redirect_topics(self, client):
     response = client.get('/en/group/societe/')
     assert_redirects(response, url_for('topics.display', topic='societe'))
Exemple #30
0
 def test_redirect_organizations(self, client):
     org = OrganizationFactory()
     response = client.get('/en/organization/%s/' % org.slug)
     assert_redirects(response, url_for('organizations.show', org=org))
Exemple #31
0
 def test_redirect_organizations(self, client):
     org = OrganizationFactory()
     response = client.get('/en/organization/%s/' % org.slug)
     assert_redirects(response, url_for('organizations.show', org=org))
Exemple #32
0
 def test_redirect_datasets(self, client):
     dataset = DatasetFactory()
     response = client.get('/en/dataset/%s/' % dataset.slug)
     assert_redirects(response, url_for('datasets.show', dataset=dataset))
Exemple #33
0
 def test_catalog_default_to_jsonld(self, client):
     expected = url_for('site.rdf_catalog_format', format='json')
     response = client.get(url_for('site.rdf_catalog'))
     assert_redirects(response, expected)