Skip to content

Commit

Permalink
add conceptscheme label option
Browse files Browse the repository at this point in the history
  • Loading branch information
cahytinne committed Jul 31, 2015
1 parent 495c159 commit 408bc7c
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 11 deletions.
22 changes: 16 additions & 6 deletions atramhasis/scripts/import_file.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,13 @@ def parse_argv_for_import(argv):
required=False,
default='sqlite:///atramhasis.sqlite'
)
parser.add_argument('--conceptscheme_label',
dest='conceptscheme_label',
type=str,
help='Label of the conceptscheme',
required=False,
default=None
)
args = parser.parse_args()
if not validate_file(args.input_file) or not validate_connection_string(args.to):
sys.exit(1)
Expand Down Expand Up @@ -153,12 +160,12 @@ def conn_str_to_session(conn_str):
)()


def create_conceptscheme(conceptscheme_id):
def create_conceptscheme(conceptscheme_label):
'''
configure output conceptscheme
'''
cs = ConceptScheme()
l = Label(conceptscheme_id, 'prefLabel', 'nl')
l = Label(conceptscheme_label, 'prefLabel', 'nl')
cs.labels.append(l)
return cs

Expand All @@ -175,17 +182,20 @@ def provider_to_db(provider, conceptscheme, session):
def main(argv=sys.argv):
'''
Documentation: import -h
Run: import --from <path_input_file> --to <conn_string>
Run: import --from <path_input_file> --to <conn_string> --conceptscheme_label <conceptscheme_label>
example path_input_file:
atramhasis/scripts/my_file
structure conn_string:
postgresql://username:password@host:port/db_name
sqlite:///path/db_name.sqlite
default conn_string:
sqlite:///atramhasis.sqlite
example conceptscheme_label
My Conceptscheme
default conceptscheme_label is the name of the file
'''

args = parse_argv_for_import(argv)
Expand All @@ -194,5 +204,5 @@ def main(argv=sys.argv):
file_to_provider_function = [supported_types[filetype]['file_to_provider'] for filetype in supported_types.keys()
if input_ext in supported_types[filetype]['extensions']][0]
provider = file_to_provider_function(args.input_file)
cs = create_conceptscheme(input_name.capitalize())
provider_to_db(provider, cs, session)
cs = create_conceptscheme(args.conceptscheme_label if args.conceptscheme_label else input_name.capitalize())
provider_to_db(provider, cs, session)
12 changes: 7 additions & 5 deletions tests/test_import_scripts.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,11 @@ def setUp(self):
def tearDown(self):
Base.metadata.drop_all(self.engine)

def _check_trees(self):
def _check_trees(self, conceptscheme_label):
sql_prov = SQLAlchemyProvider({'id': 'TREES', 'conceptscheme_id': 1}, self.session_maker)
dump = dict_dumper(sql_prov)

self.assertEqual(len(dump), 3)
self.assertEqual(conceptscheme_label, sql_prov.concept_scheme.labels[0].label)
obj_1 = [item for item in dump if item['uri'] == 'http://id.trees.org/2'][0]
self.assertEqual(obj_1['broader'], [])
self.assertEqual(obj_1['id'], 2)
Expand Down Expand Up @@ -91,12 +91,14 @@ def _check_menu(self):
def test_import_rdf(self):
sys.argv = ['import_file', '--from', test_data_rdf, '--to', settings['sqlalchemy.url']]
import_file.main(sys.argv)
self._check_trees()
self._check_trees('Trees')

def test_import_json(self):
sys.argv = ['import_file', '--from', test_data_json, '--to', settings['sqlalchemy.url']]
sys.argv = ['import_file', '--from', test_data_json,
'--to', settings['sqlalchemy.url'],
'--conceptscheme_label', 'Trees Conceptscheme']
import_file.main(sys.argv)
self._check_trees()
self._check_trees('Trees Conceptscheme')

def test_import_csv(self):
sys.argv = ['import_file', '--from', test_data_csv, '--to', settings['sqlalchemy.url']]
Expand Down

0 comments on commit 408bc7c

Please sign in to comment.