Skip to content
Snippets Groups Projects
Commit 96b7fe2b authored by anonymous's avatar anonymous
Browse files

add tests

parent 251cf65d
No related branches found
No related tags found
No related merge requests found
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.action_chains import ActionChains
from seleniumrequests import Chrome
import uuid
import pdb
class SeleniumCkanApp:
def __init__(self):
self.base_url = "http://141.91.184.85"
self.driver = Chrome()
def login(self):
self.driver.get(self.url("/user/login"))
assert "Open Data Schleswig-Holstein" in self.driver.title
elem = self.driver.find_element_by_id("field-login")
elem.clear()
elem.send_keys("sysadmin")
elem = self.driver.find_element_by_id("field-password")
elem.clear()
elem.send_keys("OpenData!0619")
elem.send_keys(Keys.RETURN)
print(self.driver.title)
assert "Datens" in self.driver.title
# assert "No results found." not in driver.page_source
def create_package(self):
guid = str(uuid.uuid4())
title = 'test_' + guid
data = {"name": title, "title": title, "notes": "This is an automated Upload", "owner_org": "stadt-norderstedt", "license_id": "http://dcat-ap.de/def/licenses/dl-by-de/2.0",
"extras": [{"key": "licenseAttributionByText", "value": "Test Lizenz"}, {"key": "issued", "value": "2019-04-23T09:18:11"}, {
"key": "spatial_uri", "value": "http://dcat-ap.de/def/politicalGeocoding/regionalKey/010600063063"}, {"key": "temporal_start", "value": "1989-01-01T00:00:00"}, {"key": "temporal_end", "value": "1993-12-19T00:00:00"}], "tags": [{"name": "Test"}], "resources": [{"name": "A distribution for this dataset", "format": "HTML", "url": "https://www.google.de/"}],
"groups": [{"id": "econ"}]
}
response = self.driver.request('POST', self.url(
'/api/3/action/package_create'), data)
pdb.set_trace()
def url(self, path):
return self.base_url + path
def got_to_url(self, path):
self.driver.get(self.url(path))
def close():
driver.close()
def get_slave_flag(self):
return self.findElementByXPath("//meta[@data-name='type']").get_attribute("content")
def findElementByXPath(self, xpath):
return self.driver.find_element(By.XPATH, xpath)
def findElementByName(self, name):
return self.driver.find_element_by_name(name)
def findElementById(self, id):
return self.driver.find_element_by_id(id)
def findElementByClassName(self, clazz):
return self.driver.find_element_by_class_name(clazz)
def fill_form(self, data, keyprefix=''):
for key, value in data.iteritems():
elem = self.driver.find_element_by_id(keyprefix + key)
elem.send_keys(value)
def select_by_visible_text(self, fieldId, text):
select = Select(self.driver.find_element_by_id(fieldId))
select.select_by_visible_text(text)
def select_by_value(self, fieldId, value):
select = Select(self.driver.find_element_by_id(fieldId))
select.select_by_value(value)
def clickOnElement(self, elem):
loc = elem.location
action = ActionChains(self.driver)
action.move_by_offset(loc['x'], loc['y'])
action.click().perform()
def currentUrl(self):
return self.driver.current_url
def onMaster(self):
cont = self.get_slave_flag()
return cont == u'0'
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:locn="http://www.w3.org/ns/locn#"
xmlns:hydra="http://www.w3.org/ns/hydra/core#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dcat="http://www.w3.org/ns/dcat#"
xmlns:dct="http://purl.org/dc/terms/"
xmlns:dcatde="http://dcat-ap.de/def/dcatde/1.0.1/"
xmlns:skos="http://www.w3.org/2004/02/skos/core#"
xmlns:schema="http://schema.org/"
>
<dcat:Catalog rdf:about="http://192.168.57.3:5000">
<dcat:dataset>
<dcat:Dataset rdf:about="http://opendata.schleswig-holstein.de/dataset/norderstedt-gehwege">
<dct:title>Gehwege</dct:title>
<dcat:distribution>
<dcat:Distribution rdf:about="http://opendata.schleswig-holstein.de/dataset/norderstedt-gehwege/resource">
<dcat:accessURL rdf:resource="http://185.223.104.6/data/norderstedt/7002_Gehwege_F.zip" />
<dct:license rdf:resource="http://dcat-ap.de/def/licenses/dl-zero-de/2.0" />
<dct:format rdf:resource="http://publications.europa.eu/resource/authority/file-type/SHP" />
</dcat:Distribution>
</dcat:distribution>
<dcat:theme rdf:resource="http://publications.europa.eu/resource/authority/data-theme/TRAN" />
<dct:description>Gehwege</dct:description>
<dct:language rdf:resource="http://publications.europa.eu/resource/authority/language/DEU" />
<dct:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2018-10-12</dct:issued>
<dct:license rdf:resource="http://dcat-ap.de/def/licenses/dl-zero-de/2.0" />
<dct:publisher>
<foaf:Organization rdf:about="http://opendata.schleswig-holstein.de/norderstedt" />
</dct:publisher>
<dct:spatial>
<dct:Location rdf:about="http://dcat-ap.de/def/politicalGeocoding/regionalKey/010600063063" />
</dct:spatial>
<dct:temporal>
<dct:PeriodOfTime>
<schema:startDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2018-10-12</schema:startDate>
</dct:PeriodOfTime>
</dct:temporal>
<dcat:keyword>Gehwege</dcat:keyword>
</dcat:Dataset>
</dcat:dataset>
</dcat:Catalog>
</rdf:RDF>
# coding: utf-8
from nosedep import depends
from ckanext.odsh.tests.ckan_selenium import SeleniumCkanApp
import pdb
import uuid
test_org = 'testherausgeber'
class TestSelenium:
app = None
@classmethod
def setup_class(cls):
TestSelenium.app = SeleniumCkanApp()
# TestSelenium.app.login()
def notest_edit_paths(self):
paths = ['/organization/edit/' + test_org,
'/dataset/edit/testtesttest',
'/dataset/testtesttest/resource_edit/afaec407-d033-439d-a699-fe9279b20e6b',
'/dataset/new_resource/testtesttest',
'/dataset/new?group=',
'/harvest',
'/harvest/test2',
'/harvest/admin/test2'
]
for path in paths:
TestSelenium.app.got_to_url(path)
cont = TestSelenium.app.get_slave_flag()
assert cont == u'0'
def test_login(self):
TestSelenium.app.login()
assert '/dataset' in TestSelenium.app.currentUrl()
@depends(after=test_login)
def test_create_dataset(self):
TestSelenium.app.got_to_url('/dataset/new?group=')
# assert TestSelenium.app.onMaster()
guid = str(uuid.uuid4())
title = 'test_' + guid
data = {"field-title": title, "field-notes": title, 'datepicker_start': '26.06.2019',
'field-spatial_uri-value': 'http://dcat-ap.de/def/politicalGeocoding/districtKey/01001'}
TestSelenium.app.fill_form(data)
TestSelenium.app.select_by_visible_text(
'field-license', 'Creative Commons CC Zero License (cc-zero)')
elem = TestSelenium.app.findElementByClassName(
'multiselect-native-select')
TestSelenium.app.clickOnElement(elem)
TestSelenium.app.findElementByXPath("//input[@value = 'soci']").click()
TestSelenium.app.clickOnElement(elem)
TestSelenium.app.findElementByName('save').click()
TestSelenium.app.findElementByXPath("//a[text()='Link']").click()
TestSelenium.app.fill_form(
{'field-image-url': 'url.png', 'field-format': 'png'})
TestSelenium.app.findElementById('form-submit-button').click()
assert 'dataset/'+title in TestSelenium.app.currentUrl()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment