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)
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)
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)
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_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)
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)
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)
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)
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
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
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
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)
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)
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))
def test_redirect_topics(self, client): response = client.get('/en/group/societe/') assert_redirects(response, url_for('topics.display', topic='societe'))
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)
def test_redirect_c3(self, client): response = client.get(url_for('gouvfr.c3')) assert_redirects(response, '/en/climate-change-challenge')
def test_redirect_to_last_dataconnexions(self, client): response = client.get(url_for('gouvfr.dataconnexions')) assert_redirects(response, url_for('gouvfr.dataconnexions6'))
def test_redirect_organization_list(self, client): response = client.get('/en/organization/') assert_redirects(response, url_for('organizations.list'))
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)
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)
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)
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)
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)
def test_redirect_c3(self, client): response = client.get(url_for('gouvfr.c3')) assert_redirects(response, '/en/climate-change-challenge')
def test_redirect_to_last_dataconnexions(self, client): response = client.get(url_for('gouvfr.dataconnexions')) assert_redirects(response, url_for('gouvfr.dataconnexions6'))
def test_redirect_organization_list(self, client): response = client.get('/en/organization/') assert_redirects(response, url_for('organizations.list'))
def test_redirect_topics(self, client): response = client.get('/en/group/societe/') assert_redirects(response, url_for('topics.display', topic='societe'))
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))
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))
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))
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)