Skip to content
Snippets Groups Projects
Commit 4c787af2 authored by anonymous's avatar anonymous
Browse files

add integration tests for package search

parent c1944e56
No related branches found
No related tags found
No related merge requests found
......@@ -40,3 +40,4 @@ coverage.xml
# Sphinx documentation
docs/_build/
.vscode/settings.json
import datetime,json
import datetime
import json
import ckan.plugins as plugins
import ckan.plugins.toolkit as toolkit
from ckan.lib.plugins import DefaultTranslation
......@@ -23,6 +24,7 @@ log = logging.getLogger(__name__)
_ = toolkit._
def odsh_get_facet_items_dict(name, limit=None):
'''
Gets all facets like 'get_facet_items_dict' but sorted alphabetically
......@@ -33,6 +35,7 @@ def odsh_get_facet_items_dict(name, limit=None):
log.info(facets)
return facets
def odsh_main_groups():
'''Return a list of the groups to be shown on the start page.'''
......@@ -43,6 +46,7 @@ def odsh_main_groups():
return groups
def odsh_convert_groups_string(value, context):
if not value:
return []
......@@ -83,6 +87,8 @@ def known_spatial_uri(key, data, errors, context):
spatial = str()
cr = csv.reader(mapping_file, delimiter="\t")
for row in cr:
print(data[key])
print(row[0])
if row[0] == data[key]:
not_found = False
spatial_text = row[1]
......@@ -103,6 +109,7 @@ def known_spatial_uri(key, data, errors, context):
data[('extras', new_index+1, 'key')] = 'spatial'
data[('extras', new_index+1, 'value')] = spatial
def odsh_tag_name_validator(value, context):
tagname_match = re.compile('[\w \-.\:\(\)]*$', re.UNICODE)
if not tagname_match.match(value):
......@@ -110,19 +117,21 @@ def odsh_tag_name_validator(value, context):
'characters or symbols: -_.:()') % (value))
return value
def odsh_tag_string_convert(key, data, errors, context):
'''Takes a list of tags that is a comma-separated string (in data[key])
and parses tag names. These are added to the data dict, enumerated. They
are also validated.'''
if isinstance(data[key], basestring):
tags = [tag.strip() \
for tag in data[key].split(',') \
tags = [tag.strip()
for tag in data[key].split(',')
if tag.strip()]
else:
tags = data[key]
current_index = max( [int(k[1]) for k in data.keys() if len(k) == 3 and k[0] == 'tags'] + [-1] )
current_index = max([int(k[1]) for k in data.keys()
if len(k) == 3 and k[0] == 'tags'] + [-1])
for num, tag in zip(count(current_index+1), tags):
data[('tags', num, 'name')] = tag
......@@ -175,12 +184,14 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
}
def before_map(self, map):
map.connect('info_page', '/info_page', controller='ckanext.odsh.controller:OdshRouteController', action='info_page')
map.connect('info_page', '/info_page',
controller='ckanext.odsh.controller:OdshRouteController', action='info_page')
# redirect all user routes to custom controller
with SubMapper(map, controller='ckanext.odsh.controller:OdshUserController') as m:
m.connect('/user/edit', action='edit')
m.connect('user_generate_apikey', '/user/generate_key/{id}', action='generate_apikey')
m.connect('user_generate_apikey',
'/user/generate_key/{id}', action='generate_apikey')
m.connect('/user/activity/{id}/{offset}', action='activity')
m.connect('user_activity_stream', '/user/activity/{id}',
action='activity', ckan_icon='clock-o')
......@@ -262,7 +273,8 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
for i, item in enumerate(schema['tags']['name']):
if item == toolkit.get_validator('tag_name_validator'):
schema['tags']['name'][i] = toolkit.get_validator('odsh_tag_name_validator')
schema['tags']['name'][i] = toolkit.get_validator(
'odsh_tag_name_validator')
for i, item in enumerate(schema['tag_string']):
if item == tag_string_convert:
schema['tag_string'][i] = odsh_tag_string_convert
......@@ -305,15 +317,15 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
'known_spatial_uri': known_spatial_uri,
'odsh_tag_name_validator': odsh_tag_name_validator}
def extend_search_convert_local_to_utc_timestamp(self, str_timestamp):
DATETIME_FORMAT = '%Y-%m-%d'
if not str_timestamp:
return ''
##Todo: do we need timezone conversions?
# Todo: do we need timezone conversions?
local_datetime = datetime.datetime.strptime(str_timestamp, DATETIME_FORMAT);
local_datetime = datetime.datetime.strptime(
str_timestamp, DATETIME_FORMAT)
# tz_code = config.get('ckan.timezone', 'Australia/Melbourne')
# local = timezone(tz_code)
# utc_datetime = _make_aware(local_datetime, local)
......@@ -328,20 +340,45 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
# There are no extras in the search params, so do nothing.
return search_params
start_date = self.extend_search_convert_local_to_utc_timestamp(extras.get('ext_startdate'))
end_date = self.extend_search_convert_local_to_utc_timestamp(extras.get('ext_enddate'))
start_date = self.extend_search_convert_local_to_utc_timestamp(
extras.get('ext_startdate'))
end_date = self.extend_search_convert_local_to_utc_timestamp(
extras.get('ext_enddate'))
if not start_date and not end_date:
return search_params
do_enclosing_query = True
if not start_date:
do_enclosing_query = False
start_date = '*'
if not end_date:
do_enclosing_query = False
end_date = '*'
fq = search_params['fq']
fq = '{fq} (+extras_temporal_start:[{start_date} TO {end_date}] OR +extras_temporal_end:[{start_date} TO {end_date}])'.format(fq=fq, start_date=start_date, end_date=end_date)
start_query = '+extras_temporal_start:[{start_date} TO {end_date}]'.format(
start_date=start_date, end_date=end_date)
end_query = '+extras_temporal_end:[{start_date} TO {end_date}]'.format(
start_date=start_date, end_date=end_date)
enclosing_query = ''
if do_enclosing_query:
enclosing_query_start = 'extras_temporal_start:[* TO {start_date}]'.format(
start_date=start_date)
enclosing_query_end = 'extras_temporal_end:[{end_date} TO *]'.format(
end_date=end_date)
enclosing_query = ' OR ({enclosing_query_start} AND {enclosing_query_end})'.format(
enclosing_query_start=enclosing_query_start, enclosing_query_end=enclosing_query_end)
fq = '{fq} ({start_query} OR {end_query} {enclosing_query})'.format(
fq=fq, start_query=start_query, end_query=end_query, enclosing_query=enclosing_query)
print(fq)
# return modified facet queries
search_params['fq'] = fq
......@@ -349,12 +386,12 @@ class OdshPlugin(plugins.SingletonPlugin, DefaultTranslation, DefaultDatasetForm
return search_params
def before_index(self, dict_pkg):
## make special date fields solr conform
# make special date fields solr conform
fields = ["issued", "temporal_start", "temporal_end"]
for field in fields:
field = 'extras_' + field
if field in dict_pkg and dict_pkg[field]:
d = parse(dict_pkg[field])
dict_pkg[field]='{0.year:4d}-{0.month:02d}-{0.day:02d}T00:00:00Z'.format(d)
dict_pkg[field] = '{0.year:4d}-{0.month:02d}-{0.day:02d}T00:00:00Z'.format(
d)
return dict_pkg
<div class='search-box-container'>
<div class='search-box'>
<form class="section site-search simple-input" action="{% url_for controller='package', action='search' %}"
<form id='dataset-search-box-form' class="section site-search simple-input" action="{% url_for controller='package', action='search' %}"
method="get">
<div class="field">
<input id="field-sitewide-search" type="text" name="q" placeholder="{{ _('Search dataset') }}" />
......
This diff is collapsed.
"""Tests for plugin.py."""
import ckanext.odsh.plugin as plugin
import paste.fixture
import pylons.test
import ckan.plugins
import ckan.model as model
import ckan.tests.factories as factories
import ckan.tests.legacy as tests
from ckan.common import config
def test_plugin():
pass
\ No newline at end of file
# class TestOdshPlugin(object):
# @classmethod
# def setup_class(cls):
# cls.app = paste.fixture.TestApp(pylons.test.pylonsapp)
# ckan.plugins.load('odsh')
# def teardown(self):
# model.repo.rebuild_db()
# @classmethod
# def teardown_class(cls):
# ckan.plugins.unload('odsh')
# def test_plugin(self):
# pass
# def test_user_cannot_access_dashboard(self):
# user = factories.User()
# tests.call_action_api(self.app, 'group_create', name='test-group',
# apikey=user['apikey'])
# encoding: utf-8
import ckan.tests.factories as factories
import ckan.tests.helpers as helpers
from bs4 import BeautifulSoup
from ckan import model
from ckan.lib.mailer import create_reset_key
from nose.tools import assert_true, assert_false, assert_equal, assert_in
from routes import url_for
import ckan.plugins
def odsh_test(): return helpers.change_config('ckanext.odsh.spatial.mapping',
'file:///usr/lib/ckan/default/src/ckanext-odsh/ckanext/odsh/tests/spatial_mapping.csv')
class TestSearch(helpers.FunctionalTestBase):
_load_plugins = ['odsh', 'spatial_metadata', 'spatial_query']
def teardown(self):
model.repo.rebuild_db()
@odsh_test()
def test_dataset_is_in_search_result(self):
# arrange
dataset = self._create_dataset()
# act
response = self._perform_search()
# assert
assert dataset['name'] in response
@odsh_test()
def test_query_with_no_match_finds_no_dataset(self):
# arrange
dataset = self._create_dataset()
# act
response = self._perform_search("foobar")
# assert
self._assert_no_results(response)
@odsh_test()
def test_query_with_no_dates_finds_dataset(self):
# arrange
dataset = self._create_dataset()
# act
response = self._perform_date_search(None, None)
# assert
assert dataset['name'] in response
@odsh_test()
def test_query_with_start_date_finds_one_dataset(self):
# arrange
datasetA = self._create_dataset('dataseta', '01-01-1960', '31-12-1960')
datasetB = self._create_dataset('datasetb', '01-01-1980', '30-06-1990')
datasetC = self._create_dataset('datasetc', '01-03-2001', '30-04-2001')
# act
response1 = self._perform_date_search(None, '1990-01-01')
response2 = self._perform_date_search(None, '2010-12-31')
response3 = self._perform_date_search('2010-12-31', None)
response4 = self._perform_date_search('1985-04-01', '1985-04-20')
response5 = self._perform_date_search('2001-04-01', None)
# assert
self._assert_datasets_in_response([datasetA, datasetB], response1)
self._assert_datasets_not_in_response([datasetC], response1)
self._assert_datasets_in_response(
[datasetA, datasetB, datasetC], response2)
self._assert_no_results(response3)
self._assert_datasets_in_response([datasetB], response4)
self._assert_datasets_not_in_response([datasetA, datasetC], response4)
self._assert_datasets_in_response([datasetC], response5)
self._assert_datasets_not_in_response([datasetA, datasetB], response5)
def _assert_datasets_in_response(self, datasets, response):
for dataset in datasets:
assert dataset['name'] in response
def _assert_datasets_not_in_response(self, datasets, response):
for dataset in datasets:
assert dataset['name'] not in response
def _assert_no_results(self, response):
assert "No datasets found" in response
def _create_dataset(self, name='my-own-dataset', temporal_start='27-01-2000', temporal_end='27-01-2000'):
user = factories.User()
return factories.Dataset(user=user,
name=name,
title='My very own dataset',
issued='27-01-2000',
spatial_uri='http://dcat-ap.de/def/politicalGeocoding/districtKey/01001',
temporal_start=temporal_start,
temporal_end=temporal_end)
def _perform_search(self, query=None):
search_form = self._perform_search_for_form('dataset-search-box-form')
if query is not None:
search_form['q'] = query
return helpers.webtest_submit(search_form)
def _perform_date_search(self, search_from, search_to):
search_form = self._perform_search_for_form('date-search-form')
if search_form is not None:
search_form['ext_startdate'] = search_from
if search_to is not None:
search_form['ext_enddate'] = search_to
return helpers.webtest_submit(search_form)
def _perform_search_for_form(self, form):
search_url = url_for(controller='package', action='search')
search_response = self._get_test_app().get(search_url)
search_form = search_response.forms[form]
return search_form
out 0 → 100644
/usr/lib/ckan/default/local/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py:79: SAWarning: Usage of the 'related attribute set' operation is not currently supported within the execution stage of the flush process. Results may not be consistent. Consider using alternative event listeners or connection-level operations instead.
sess._flush_warning("related attribute set")
Trying `CDLL(libgeos_c.so.1)`
Library path: 'libgeos_c.so.1'
DLL: <CDLL 'libgeos_c.so.1', handle 55b3322fac40 at 7f38855efa50>
Trying `CDLL(libc.so.6)`
Library path: 'libc.so.6'
DLL: <CDLL 'libc.so.6', handle 7f3890842000 at 7f38855ef850>
...F.
======================================================================
FAIL: ckanext.odsh.tests.test_search.TestSearch.test_query_with_start_date_finds_one_dataset
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/ckan/default/local/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
self.test(*self.arg)
File "/usr/lib/ckan/default/src/ckan/ckan/tests/helpers.py", line 389, in wrapper
return func(*args, **kwargs)
File "/usr/lib/ckan/default/src/ckanext-odsh/ckanext/odsh/tests/test_search.py", line 75, in test_query_with_start_date_finds_one_dataset
assert datasetC['name'] not in response1
AssertionError:
-------------------- >> begin captured stdout << ---------------------
http://dcat-ap.de/def/politicalGeocoding/districtKey/01001
http://dcat-ap.de/def/politicalGeocoding/districtKey/01001
http://dcat-ap.de/def/politicalGeocoding/districtKey/01001
http://dcat-ap.de/def/politicalGeocoding/districtKey/01001
http://dcat-ap.de/def/politicalGeocoding/districtKey/01001
http://dcat-ap.de/def/politicalGeocoding/districtKey/01001
Response: 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
<!DOCTYPE html>
<!--[if IE 7]> <html lang="en" class="ie ie7"> <![endif]-->
<!--[if IE 8]> <html lang="en" class="ie ie8"> <![endif]-->
<!--[if IE 9]> <html lang="en" class="ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html lang="en"> <!--<![endif]-->
<head>
<!--[if lte ie 8]><script type="text/javascript" src="/fanstatic/vendor/:version:2018-08-13T11:35:49.36/html5.min.js"></script><![endif]-->
<link rel="stylesheet" type="text/css" href="/fanstatic/vendor/:version:2018-08-13T11:35:49.36/select2/select2.css" />
<link rel="stylesheet" type="text/css" href="/fanstatic/css/:version:2018-08-13T11:35:49.33/main.min.css" />
<link rel="stylesheet" type="text/css" href="/fanstatic/vendor/:version:2018-08-13T11:35:49.36/font-awesome/css/font-awesome.min.css" />
<link rel="stylesheet" type="text/css" href="/fanstatic/ckanext-spatial/:version:2018-08-13T17:02:43.39/js/vendor/leaflet/leaflet.css" />
<link rel="stylesheet" type="text/css" href="/fanstatic/ckanext-spatial/:version:2018-08-13T17:02:43.39/js/vendor/leaflet.draw/leaflet.draw.css" />
<link rel="stylesheet" type="text/css" href="/fanstatic/ckanext-spatial/:version:2018-08-13T17:02:43.39/css/spatial_query.css" />
<meta charset="utf-8" />
<meta name="generator" content="ckan 2.7.4" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Datasets - CKAN</title>
<link rel="shortcut icon" href="/base/images/ckan.ico" />
<link rel="stylesheet" href="/odsh.css?refresh=3803" />
<link rel="stylesheet" href="/odsh_header.css?refresh=8864" />
<link rel="stylesheet" href="/bootstrap-multiselect.css" />
<link rel="stylesheet" href="TEST_TEMPLATE_HEAD_END.css" type="text/css">
</head>
<body data-site-root="http://test.ckan.net/" data-locale-root="http://test.ckan.net/" >
<div class="hide"><a href="#content">Skip to content</a></div>
<header class="navbar navbar-static-top masthead">
<div class="container">
<div class='row'>
<div class='span3 span-navigation'>
<hgroup class="header-image pull-left">
<a class="logo" href="/"><img src="/images/ckan_logo_fullname_long.png" alt="CKAN"
title="CKAN" /></a>
</hgroup>
</div>
<button data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar" type="button">
<span class="fa fa-bars"></span>
</button>
<div class='site-title'> CKAN </div>
</div>
</div>
<div class="container navigation-container">
<div class='row navigation-row'>
<div class="nav-collapse collapse">
<nav class="section navigation">
<ul class="nav nav-pills">
<li><a href="/">Startseite</a></li><li class="active"><a href="/dataset">Daten</a></li><li><a href="/organization">Herausgeber</a></li><li><a href="/info_page">Infos</a></li>
<li class="disabled">
<a href="#">
<span class="text">Upload</span>
</a>
</li>
<li class=''>
<a href="/user/login" title="login">
<span class="text">Login</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
</header>
<div role="main">
<div id="content" class="container">
<div class="flash-messages">
</div>
<div class="toolbar">
<ol class="breadcrumb">
<li class="home"><a href="/"><img class='icon-home' src='/base/images/Icon-Home.png' /><span> Home</span></a></li>
<li class="active"><a href="/dataset">Datasets</a></li>
</ol>
</div>
<div class='search-box-container'>
<div class='search-box'>
<form id='dataset-search-box-form' class="section site-search simple-input" action="/dataset"
method="get">
<div class="field">
<input id="field-sitewide-search" type="text" name="q" placeholder="Search dataset" />
<button class="btn-search" type="submit">
</div>
</form>
</div>
</div>
<div class="row wrapper is-table-row">
<aside class="secondary span3">
<section id="dataset-map" class="module module-narrow module-shallow">
<h2 class="module-heading">
<i class="icon-medium icon-globe"></i>
Filter by location
<a href="/dataset?ext_startdate=&amp;ext_enddate=1990-01-01" class="action">Clear</a>
</h2>
<div class="dataset-map" data-module="spatial-query" data-default_extent="{ &#34;type&#34;: &#34;Polygon&#34;, &#34;coordinates&#34;: [[[7.6574,53.1632],[11.8322,53.1632],[11.8322,55.1066],
[7.6574,55.1066],[7.6574,53.1632]]] }" data-module-map_config="{}">
<div id="dataset-map-container"></div>
</div>
<div id="dataset-map-attribution">
<div>Map data &copy; <a href="http://openstreetmap.org/copyright">OpenStreetMap</a> contributors</div>
<div>Tiles by <a href="http://stamen.com">Stamen Design</a> (<a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>)</div>
</div>
</section>
<div class="filters">
<div class="container-fluid filter-reset">
<div class="filter-reset-label"><span>Filter:</span></div>
<div class="filter-reset-box"><a href="/dataset?ext_startdate=&amp;ext_enddate=1990-01-01">zurücksetzen</a></button></div>
</div>
<div>
<section class="module module-narrow module-shallow">
<p class="module-content empty">There are no Herausgeber that match this search</p>
</section>
<section class="module module-narrow module-shallow">
<p class="module-content empty">There are no Lizenz that match this search</p>
</section>
<section class="module module-narrow module-shallow">
<p class="module-content empty">There are no Kategorie that match this search</p>
</section>
<section class="module module-narrow module-shallow">
<p class="module-content empty">There are no Dateiformat that match this search</p>
</section>
</div>
<section class="module module-narrow module-shallow">
<nav>
<div class="nav-title">timerange</div>
<div class="rangesearch-controls">
<form id="date-search-form" method="get" action="/dataset">
<div class='controls rangesearch'><label for="ext_startdate">From</label>
<input id="ext_startdate" name="ext_startdate" type="text" value="" placeholder="Date"
onfocus=(this.type=&#39;date&#39;) class='rangesearch' />
<label for="ext_enddate">To</label>
<input id="ext_enddate" name="ext_enddate" type="date" value="1990-01-01" placeholder="Date"
onfocus=(this.type=&#39;date&#39;) class='rangesearch' />
<a class='pull-right' href="javascript:{}" onclick="$('#date-search-form').submit();" class="action">submit date search</a>
</div>
</form>
</div>
</nav>
</section>
</div>
</aside>
<div class="primary span9">
<section class="module">
<div class="module-content">
<form id="dataset-search-form" class="search-form"
method="get" data-module="select-switch">
<div class="form-select control-group control-order-by">
<select id="field-order-by" name="sort">
<option value="score desc, metadata_modified desc" selected="selected" >
Order by Relevance</option>
<option value="title_string asc" >
Order by Name Ascending</option>
<option value="title_string desc" >
Order by Name Descending</option>
<option value="metadata_modified desc" >
Order by Last Modified</option>
<option value="views_recent desc" >
Order by Popular</option>
</select>
<button class="btn js-hide" type="submit">Go</button>
</div>
<h2>
3 datasets found</h2>
<p class="filter-list">
</p>
<a class="show-filters btn">Filter Results</a>
<div id="datesearch-filter">
<p class="filter-list">
<span class="filtered pill">
daterange: to 01.01.1990
<a href="/dataset?ext_startdate=" class="remove" title="Remove"><i class="fa fa-times"></i></a>
</span>
</p>
</div>
</form>
<div class="dataset-list unstyled">
<div class="container-fluid odsh-dataset-item">
<div class="dataset-content">
<h3 class="dataset-heading">
<a href="/dataset/datasetc">My very own dataset</a>
</span>
</h3>
<div>Just another test dataset.</div>
</div>
<div class="dataset-meta">
<div class="dataset-stars">
<span class="star-rating no-stars"><span class="star-rating-stars"><span class="fa fa-star-o odsh-star"></span><span class="fa fa-star-o odsh-star"></span><span class="fa fa-star-o odsh-star"></span><span class="fa fa-star-o odsh-star"></span><span class="fa fa-star-o odsh-star"></span>
</span></span>
</div>
<div class="dataset-info">
<p>Kategorie: - </p>
<p> Lizenz: -</p>
<p> Herausgeber: - </p>
<p> Zeitraum: 03.01.2001-30.04.2001</p>
<p>issued: 27.01.2000 </p>
</div>
</div>
<div class="module module-narrow module-shallow context-info">
</div>
</div>
<div class="container-fluid odsh-dataset-item">
<div class="dataset-content">
<h3 class="dataset-heading">
<a href="/dataset/datasetb">My very own dataset</a>
</span>
</h3>
<div>Just another test dataset.</div>
</div>
<div class="dataset-meta">
<div class="dataset-stars">
<span class="star-rating no-stars"><span class="star-rating-stars"><span class="fa fa-star-o odsh-star"></span><span class="fa fa-star-o odsh-star"></span><span class="fa fa-star-o odsh-star"></span><span class="fa fa-star-o odsh-star"></span><span class="fa fa-star-o odsh-star"></span>
</span></span>
</div>
<div class="dataset-info">
<p>Kategorie: - </p>
<p> Lizenz: -</p>
<p> Herausgeber: - </p>
<p> Zeitraum: 01.01.1980-30.06.1990</p>
<p>issued: 27.01.2000 </p>
</div>
</div>
<div class="module module-narrow module-shallow context-info">
</div>
</div>
<div class="container-fluid odsh-dataset-item">
<div class="dataset-content">
<h3 class="dataset-heading">
<a href="/dataset/dataseta">My very own dataset</a>
</span>
</h3>
<div>Just another test dataset.</div>
</div>
<div class="dataset-meta">
<div class="dataset-stars">
<span class="star-rating no-stars"><span class="star-rating-stars"><span class="fa fa-star-o odsh-star"></span><span class="fa fa-star-o odsh-star"></span><span class="fa fa-star-o odsh-star"></span><span class="fa fa-star-o odsh-star"></span><span class="fa fa-star-o odsh-star"></span>
</span></span>
</div>
<div class="dataset-info">
<p>Kategorie: - </p>
<p> Lizenz: -</p>
<p> Herausgeber: - </p>
<p> Zeitraum: 01.01.1960-31.12.1960</p>
<p>issued: 27.01.2000 </p>
</div>
</div>
<div class="module module-narrow module-shallow context-info">
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="footer-content">
<div class='footer-first-row'>
<div class="footer-left">
<div class="footer-icon">
<img class='icon-print' src='/base/images/Icon-Print.png' />
Drucken
</div>
</div>
</div>
<div class='footer-line'></div>
<div class="footer-left">
<div class="footer-icon">&copy; CKAN</div>
<div class="footer-right">
<div class='footer-icon'>Kontakt</div>
<div class='footer-icon'>Impressum</div>
<div class='footer-icon last'>Datenschutz</div>
</div>
</div>
</div>
</div>
</div>
<strong>TEST TEMPLATE_FOOTER_END TEST</strong>
<script>document.getElementsByTagName('html')[0].className += ' js';</script>
<script type="text/javascript" src="/fanstatic/vendor/:version:2018-08-13T11:35:49.36/jquery.min.js"></script>
<script type="text/javascript" src="/fanstatic/vendor/:version:2018-08-13T11:35:49.36/:bundle:bootstrap/js/bootstrap.min.js;jed.min.js;moment-with-locales.js;select2/select2.min.js"></script>
<script type="text/javascript" src="/fanstatic/base/:version:2018-08-13T11:35:49.33/:bundle:plugins/jquery.inherit.min.js;plugins/jquery.proxy-all.min.js;plugins/jquery.url-helpers.min.js;plugins/jquery.date-helpers.min.js;plugins/jquery.slug.min.js;plugins/jquery.slug-preview.min.js;plugins/jquery.truncator.min.js;plugins/jquery.masonry.min.js;plugins/jquery.form-warning.min.js;sandbox.min.js;module.min.js;pubsub.min.js;client.min.js;notify.min.js;i18n.min.js;main.min.js;modules/select-switch.min.js;modules/slug-preview.min.js;modules/basic-form.min.js;modules/confirm-action.min.js;modules/api-info.min.js;modules/autocomplete.min.js;modules/custom-fields.min.js;modules/data-viewer.min.js;modules/table-selectable-rows.min.js;modules/resource-form.min.js;modules/resource-upload-field.min.js;modules/resource-reorder.min.js;modules/resource-view-reorder.min.js;modules/follow.min.js;modules/activity-stream.min.js;modules/dashboard.min.js;modules/resource-view-embed.min.js;view-filters.min.js;modules/resource-view-filters-form.min.js;modules/resource-view-filters.min.js;modules/table-toggle-more.min.js;modules/dataset-visibility.min.js;modules/media-grid.min.js;modules/image-upload.min.js"></script>
<script type="text/javascript" src="/fanstatic/base/:version:2018-08-13T11:35:49.33/tracking.min.js"></script>
<script type="text/javascript" src="/fanstatic/ckanext-spatial/:version:2018-08-13T17:02:43.39/:bundle:js/vendor/leaflet/leaflet.js;js/common_map.js;js/vendor/leaflet.draw/leaflet.draw.js;js/spatial_query.js"></script>
<script type="text/javascript" src="/fanstatic/odsh/:version:2018-12-17T15:41:42.27/odsh.js"></script></body>
</html>
--------------------- >> end captured stdout << ----------------------
-------------------- >> begin captured logging << --------------------
ckan.model: INFO: Database table data deleted
ckan.model: INFO: Database initialised
ckan.model: INFO: Database rebuilt
ckanext.spatial.plugin: DEBUG: Received: '{"type": "Polygon", "coordinates": [[[9.4228, 54.8232], [9.4376, 54.8089], [9.4286, 54.8], [9.4366, 54.7887], [9.4382, 54.803], [9.4419, 54.8045], [9.4403, 54.8004], [9.4438, 54.8051], [9.4528, 54.8074], [9.4579, 54.8175], [9.4673, 54.8236], [9.4908, 54.8236], [9.492, 54.8148], [9.5054, 54.8102], [9.5038, 54.8041], [9.4996, 54.8036], [9.5054, 54.7995], [9.4989, 54.7986], [9.5065, 54.7921], [9.5021, 54.7793], [9.5058, 54.7731], [9.4934, 54.7692], [9.4747, 54.7723], [9.4722, 54.7669], [9.4602, 54.7603], [9.4609, 54.7542], [9.453, 54.7521], [9.379, 54.7531], [9.3573, 54.7794], [9.4055, 54.7955], [9.4023, 54.8082], [9.4115, 54.8159], [9.4046, 54.8224], [9.4126, 54.8226], [9.4228, 54.8232]]]}'
ckanext.spatial.lib: DEBUG: Created new extent for package 3aea3bf9-04fe-4a34-ad29-83a9494c8998
ckanext.spatial.plugin: DEBUG: Received: '{"type": "Polygon", "coordinates": [[[9.4228, 54.8232], [9.4376, 54.8089], [9.4286, 54.8], [9.4366, 54.7887], [9.4382, 54.803], [9.4419, 54.8045], [9.4403, 54.8004], [9.4438, 54.8051], [9.4528, 54.8074], [9.4579, 54.8175], [9.4673, 54.8236], [9.4908, 54.8236], [9.492, 54.8148], [9.5054, 54.8102], [9.5038, 54.8041], [9.4996, 54.8036], [9.5054, 54.7995], [9.4989, 54.7986], [9.5065, 54.7921], [9.5021, 54.7793], [9.5058, 54.7731], [9.4934, 54.7692], [9.4747, 54.7723], [9.4722, 54.7669], [9.4602, 54.7603], [9.4609, 54.7542], [9.453, 54.7521], [9.379, 54.7531], [9.3573, 54.7794], [9.4055, 54.7955], [9.4023, 54.8082], [9.4115, 54.8159], [9.4046, 54.8224], [9.4126, 54.8226], [9.4228, 54.8232]]]}'
ckanext.spatial.lib: DEBUG: Created new extent for package e99bfb8a-761d-4058-a636-7e261dff683e
ckanext.spatial.plugin: DEBUG: Received: '{"type": "Polygon", "coordinates": [[[9.4228, 54.8232], [9.4376, 54.8089], [9.4286, 54.8], [9.4366, 54.7887], [9.4382, 54.803], [9.4419, 54.8045], [9.4403, 54.8004], [9.4438, 54.8051], [9.4528, 54.8074], [9.4579, 54.8175], [9.4673, 54.8236], [9.4908, 54.8236], [9.492, 54.8148], [9.5054, 54.8102], [9.5038, 54.8041], [9.4996, 54.8036], [9.5054, 54.7995], [9.4989, 54.7986], [9.5065, 54.7921], [9.5021, 54.7793], [9.5058, 54.7731], [9.4934, 54.7692], [9.4747, 54.7723], [9.4722, 54.7669], [9.4602, 54.7603], [9.4609, 54.7542], [9.453, 54.7521], [9.379, 54.7531], [9.3573, 54.7794], [9.4055, 54.7955], [9.4023, 54.8082], [9.4115, 54.8159], [9.4046, 54.8224], [9.4126, 54.8226], [9.4228, 54.8232]]]}'
ckanext.spatial.lib: DEBUG: Created new extent for package 04d546b5-1a13-4c1b-98e7-332ac3015466
ckanext.odsh.plugin: INFO: []
ckanext.odsh.plugin: INFO: []
ckanext.odsh.plugin: INFO: []
ckanext.odsh.plugin: INFO: []
ckanext.odsh.plugin: INFO: []
ckanext.odsh.plugin: INFO: []
ckanext.odsh.plugin: INFO: []
ckanext.odsh.plugin: INFO: []
ckan.lib.base: INFO: /dataset render time 0.062 seconds
ckanext.odsh.plugin: INFO: []
ckanext.odsh.plugin: INFO: []
ckanext.odsh.plugin: INFO: []
ckanext.odsh.plugin: INFO: []
ckanext.odsh.plugin: INFO: []
ckanext.odsh.plugin: INFO: []
ckanext.odsh.plugin: INFO: []
ckanext.odsh.plugin: INFO: []
ckan.lib.base: INFO: /dataset render time 0.077 seconds
--------------------- >> end captured logging << ---------------------
----------------------------------------------------------------------
Ran 5 tests in 3.871s
FAILED (failures=1)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment