diff --git a/ckanext/odsh/tests/test_validation.py b/ckanext/odsh/tests/test_validation.py index 1725df0be8bb2057ba1a9a82e3d0e4a3b57932b4..0309f913fc204494ec3f8789f59088e605d97cdd 100644 --- a/ckanext/odsh/tests/test_validation.py +++ b/ckanext/odsh/tests/test_validation.py @@ -7,10 +7,13 @@ from mock import MagicMock, Mock, patch def mockInvalid(*args, **kwargs): return Exception(*args, **kwargs) - def mock_(s): return s +m = MagicMock() +class MissingMock: + pass +m.Missing=MissingMock sys.modules['ckan'] = MagicMock() sys.modules['ckan.plugins'] = MagicMock() @@ -18,14 +21,16 @@ sys.modules['ckan.plugins.toolkit'] = MagicMock() sys.modules['ckan.model'] = MagicMock() sys.modules['ckan.lib'] = MagicMock() sys.modules['ckan.lib.navl'] = MagicMock() -sys.modules['ckan.lib.navl.dictization_functions'] = MagicMock() +sys.modules['ckan.lib.navl.dictization_functions'] = m sys.modules['pylons'] = MagicMock() +import ckan.model as modelMock +import pylons import ckan.plugins.toolkit as toolkit + toolkit.Invalid = mockInvalid toolkit._ = mock_ -import pylons from ckanext.odsh.validation import * @@ -55,7 +60,7 @@ def test_tag_name_validator_valid(): @patch('urllib2.urlopen') @patch('pylons.config.get', side_effect='foo') -@patch('csv.reader', side_effect=[[['uri', 'text', json.dumps({"geometry":0})]]]) +@patch('csv.reader', side_effect=[[['uri', 'text', json.dumps({"geometry": 0})]]]) def test_known_spatial_uri(url_mock, get_mock, csv_mock): # arrange data = {('extras', 0, 'key'): 'spatial_uri', @@ -67,3 +72,14 @@ def test_known_spatial_uri(url_mock, get_mock, csv_mock): assert data[('extras', 1, 'value')] == 'text' assert data[('extras', 2, 'key')] == 'spatial' assert data[('extras', 2, 'value')] == '0' + + +def test_validate_licenseAttributionByText(): + # arrange + def get_licenses(): + return {} + modelMock.Package.get_license_register = get_licenses + data = {'license_id': '0', + ('extras', 0, 'key'): 'licenseAttributionByText', + ('extras', 0, 'value'): ''} + validate_licenseAttributionByText('key', data, {}, None) diff --git a/ckanext/odsh/validation.py b/ckanext/odsh/validation.py index e90bd87098fdc2c30d9492fa60d3d1da6f305ad1..25d48076e9b5942cabc81c0a12b3ea4666917f86 100644 --- a/ckanext/odsh/validation.py +++ b/ckanext/odsh/validation.py @@ -104,6 +104,7 @@ def validate_licenseAttributionByText(key, data, errors,context): isByLicense = True break hasAttribution=False + print(Missing) for k in data: if data[k] == 'licenseAttributionByText': if isinstance(data[(k[0], k[1], 'value')], Missing) or (k[0], k[1], 'value') not in data: