Merge pull request #446 from wagner-certat/tool-empty-strings

Add test for empty strings
This commit is contained in:
Alexandre Dulaunoy 2019-08-30 11:10:16 +02:00 committed by GitHub
commit b986f06cb4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 53 additions and 10 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
__pycache__

View file

@ -1493,7 +1493,7 @@
"Zhōnghuá Rénmín Gònghéguó" "Zhōnghuá Rénmín Gònghéguó"
], ],
"territory-type": [ "territory-type": [
"" "Country"
] ]
}, },
"uuid": "53d3d205-db31-4ec9-86aa-c2bf11fd18e6", "uuid": "53d3d205-db31-4ec9-86aa-c2bf11fd18e6",

0
tools/__init__.py Normal file
View file

View file

@ -8,9 +8,19 @@ import os
import collections import collections
def loadjsons(path): def loadjsons(path, return_paths=False):
""" """
Find all Jsons and load them in a dict Find all Jsons and load them in a dict
Parameters:
path: string
return_names: boolean, if the name of the file should be returned,
default: False
Returns:
List of parsed file contents.
If return_paths is True, then every list item is a tuple of the
file name and the file content
""" """
files = [] files = []
data = [] data = []
@ -18,9 +28,14 @@ def loadjsons(path):
if os.path.isfile(os.path.join(path, name)) and name.endswith('.json'): if os.path.isfile(os.path.join(path, name)) and name.endswith('.json'):
files.append(name) files.append(name)
for jfile in files: for jfile in files:
data.append(json.load(open("%s/%s" % (path, jfile)))) filepath = os.path.join(path, jfile)
if return_paths:
data.append((filepath, json.load(open(filepath))))
else:
data.append(json.load(json.load(open(filepath))))
return data return data
if __name__ == '__main__': if __name__ == '__main__':
""" """
Iterate all name + synonyms Iterate all name + synonyms

24
tools/chk_empty_strings.py Executable file
View file

@ -0,0 +1,24 @@
#!/usr/bin/env python3
# coding=utf-8
"""
Tools to find empty string entries in galaxies
"""
from .chk_dup import loadjsons
import sys
if __name__ == '__main__':
jsons = loadjsons("clusters", return_paths=True)
retval = 0
for clustername, djson in jsons:
items = djson.get('values')
for entry in items:
name = entry.get('value')
for key, value in entry.get('meta', {}).items():
if isinstance(value, list):
if '' in value:
retval = 1
print("Empty string found in Cluster %r: values/%s/meta/%s"
"" % (clustername, name, key),
file=sys.stderr)
sys.exit(retval)

View file

@ -84,3 +84,6 @@ do
fi fi
echo '' echo ''
done done
# check for empyt strings in clusters
python3 -m tools.chk_empty_strings