Skip to content

Commit a5267c4

Browse files
committed
OpenConceptLab/ocl_issues#955 | CSV importer test for OpenMRS schema
1 parent fad7d51 commit a5267c4

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

core/importers/tests.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,18 @@
55

66
from celery_once import AlreadyQueued
77
from django.core.files.uploadedfile import SimpleUploadedFile
8+
from django.core.management import call_command
89
from django.db.models import F
910
from mock import patch, Mock, ANY, call
11+
from ocldev.oclcsvtojsonconverter import OclStandardCsvToJsonConverter
1012

1113
from core.collections.models import Collection
14+
from core.common.constants import CUSTOM_VALIDATION_SCHEMA_OPENMRS
1215
from core.common.tests import OCLAPITestCase, OCLTestCase
1316
from core.concepts.models import Concept
1417
from core.concepts.tests.factories import ConceptFactory
1518
from core.importers.models import BulkImport, BulkImportInline, BulkImportParallelRunner
19+
from core.importers.views import csv_file_data_to_input_list
1620
from core.mappings.models import Mapping
1721
from core.orgs.models import Organization
1822
from core.orgs.tests.factories import OrganizationFactory
@@ -384,6 +388,27 @@ def test_sample_import(self):
384388
self.assertEqual(len(importer.invalid), 0)
385389
self.assertEqual(len(importer.others), 0)
386390

391+
@unittest.skip('[Skipped] OPENMRS CSV Import Sample')
392+
def test_openmrs_schema_csv_import(self):
393+
call_command('import_lookup_values')
394+
org = OrganizationFactory(mnemonic='MSFOCP')
395+
OrganizationSourceFactory(
396+
mnemonic='Implementationtest', organization=org, custom_validation_schema=CUSTOM_VALIDATION_SCHEMA_OPENMRS)
397+
file_content = open(
398+
os.path.join(os.path.dirname(__file__), '..', 'samples/msfocp_concepts.csv'), 'r').read()
399+
data = OclStandardCsvToJsonConverter(
400+
input_list=csv_file_data_to_input_list(file_content),
401+
allow_special_characters=True
402+
).process()
403+
importer = BulkImportInline(data, 'ocladmin', True)
404+
importer.run()
405+
406+
self.assertEqual(importer.processed, 31)
407+
self.assertEqual(len(importer.created), 21)
408+
self.assertEqual(len(importer.updated), 0)
409+
self.assertEqual(len(importer.invalid), 0)
410+
self.assertEqual(len(importer.failed), 10)
411+
387412
@unittest.skip('[Skipped] PEPFAR (small) Import Sample')
388413
def test_pepfar_import(self):
389414
importer = BulkImportInline(

core/samples/msfocp_concepts.csv

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
resource_type,owner_id,source,collection,id,external_id,name,name_type,name_external_id,name[fr],name_type[fr],name_locale[fr],name_external_id[fr],concept_class,datatype,description,description_external_id,released,attr:precise,attr:units,map_external_id,map_target,map_type,map_from_concept_url,map_to_concept_url,map_from_concept_owner_id,map_from_concept_source,map_from_concept_id,map_to_concept_owner_id,map_to_concept_source,map_to_concept_id,map_to_concept_name,map_source[dsme1],map_to_concept_owner_id[dsme1],map_to_concept_source[dsme1],map_to_concept_id[dsme1],extmap_to_concept_owner_id[1],extmap_to_concept_source[1],extmap_to_concept_id[1],extmap_to_concept_name[1]
2+
Concept,MSFOCP,Implementationtest,,TEST100,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca200,Diagnosis concept class,FULLY_SPECIFIED,,,,,,Diagnosis,Text,,,,,,,,,,,,,,,,,,,,,,,,,
3+
Concept,MSFOCP,Implementationtest,,TEST101,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca201,Symptom/Finding concept class,FULLY_SPECIFIED,,,,,,Symptom/Finding,Text,,,,,,,,,,,,,,,,,,,,,,,,,
4+
Concept,MSFOCP,Implementationtest,,TEST102,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca202,Procedure concept class,FULLY_SPECIFIED,,,,,,Procedure,Text,,,,,,,,,,,,,,,,,,,,,,,,,
5+
Concept,MSFOCP,Implementationtest,,TEST103,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca203,Question concept class,FULLY_SPECIFIED,,,,,,Question,Text,,,,,,,,,,,,,,,,,,,,,,,,,
6+
Concept,MSFOCP,Implementationtest,,TEST104,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca204,Drug concept class,FULLY_SPECIFIED,,,,,,Drug,Text,,,,,,,,,,,,,,,,,,,,,,,,,
7+
Concept,MSFOCP,Implementationtest,,TEST105,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca205,Test concept class,FULLY_SPECIFIED,,,,,,Test,Text,,,,,,,,,,,,,,,,,,,,,,,,,
8+
Concept,MSFOCP,Implementationtest,,TEST106,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca206,LabSet concept class,FULLY_SPECIFIED,,,,,,LabSet,Text,,,,,,,,,,,,,,,,,,,,,,,,,
9+
Concept,MSFOCP,Implementationtest,,TEST107,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca207,MedSet concept class,FULLY_SPECIFIED,,,,,,MedSet,Text,,,,,,,,,,,,,,,,,,,,,,,,,
10+
Concept,MSFOCP,Implementationtest,,TEST108,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca208,ConvSet concept class,FULLY_SPECIFIED,,,,,,ConvSet,Text,,,,,,,,,,,,,,,,,,,,,,,,,
11+
Concept,MSFOCP,Implementationtest,,TEST109,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca209,Finding concept class,FULLY_SPECIFIED,,,,,,Finding,Text,,,,,,,,,,,,,,,,,,,,,,,,,
12+
Concept,MSFOCP,Implementationtest,,TEST110,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca210,Anatomy concept class,FULLY_SPECIFIED,,,,,,Anatomy,Text,,,,,,,,,,,,,,,,,,,,,,,,,
13+
Concept,MSFOCP,Implementationtest,,TEST111,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca211,Misc concept class,FULLY_SPECIFIED,,,,,,Misc,Text,,,,,,,,,,,,,,,,,,,,,,,,,
14+
Concept,MSFOCP,Implementationtest,,TEST112,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca212,Symptom concept class,FULLY_SPECIFIED,,,,,,Symptom,Text,,,,,,,,,,,,,,,,,,,,,,,,,
15+
Concept,MSFOCP,Implementationtest,,TEST113,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca213,Specimen concept class,FULLY_SPECIFIED,,,,,,Specimen,Text,,,,,,,,,,,,,,,,,,,,,,,,,
16+
Concept,MSFOCP,Implementationtest,,TEST114,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca214,Misc-Order concept class,FULLY_SPECIFIED,,,,,,Misc-Order,Text,,,,,,,,,,,,,,,,,,,,,,,,,
17+
Concept,MSFOCP,Implementationtest,,TEST115,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca215,Workflow concept class,FULLY_SPECIFIED,,,,,,Workflow,Text,,,,,,,,,,,,,,,,,,,,,,,,,
18+
Concept,MSFOCP,Implementationtest,,TEST116,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca216,State concept class,FULLY_SPECIFIED,,,,,,State,Text,,,,,,,,,,,,,,,,,,,,,,,,,
19+
Concept,MSFOCP,Implementationtest,,TEST117,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca217,Program concept class,FULLY_SPECIFIED,,,,,,Program,Text,,,,,,,,,,,,,,,,,,,,,,,,,
20+
Concept,MSFOCP,Implementationtest,,TEST118,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca218,Aggregate-Measurement concept class,FULLY_SPECIFIED,,,,,,Aggregate-Measurement,Text,,,,,,,,,,,,,,,,,,,,,,,,,
21+
Concept,MSFOCP,Implementationtest,,TEST119,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca219,Indicator concept class,FULLY_SPECIFIED,,,,,,Indicator,Text,,,,,,,,,,,,,,,,,,,,,,,,,
22+
Concept,MSFOCP,Implementationtest,,TEST120,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca220,Health-Care-Monitoring-Topics concept class,FULLY_SPECIFIED,,,,,,Health-Care-Monitoring-Topics,Text,,,,,,,,,,,,,,,,,,,,,,,,,
23+
Concept,MSFOCP,Implementationtest,,TEST121,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca221,Radiology-Imaging-Procedure concept class,FULLY_SPECIFIED,,,,,,Radiology-Imaging-Procedure,Text,,,,,,,,,,,,,,,,,,,,,,,,,
24+
Concept,MSFOCP,Implementationtest,,TEST122,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca222,Frequency concept class,FULLY_SPECIFIED,,,,,,Frequency,Text,,,,,,,,,,,,,,,,,,,,,,,,,
25+
Concept,MSFOCP,Implementationtest,,TEST123,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca223,Pharmacologic-Drug-Class concept class,FULLY_SPECIFIED,,,,,,Pharmacologic-Drug-Class,Text,,,,,,,,,,,,,,,,,,,,,,,,,
26+
Concept,MSFOCP,Implementationtest,,TEST124,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca224,Units-of-Measure concept class,FULLY_SPECIFIED,,,,,,Units-of-Measure,Text,,,,,,,,,,,,,,,,,,,,,,,,,
27+
Concept,MSFOCP,Implementationtest,,TEST125,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca225,Organism concept class,FULLY_SPECIFIED,,,,,,Organism,Text,,,,,,,,,,,,,,,,,,,,,,,,,
28+
Concept,MSFOCP,Implementationtest,,TEST126,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca226,Drug-form concept class,FULLY_SPECIFIED,,,,,,Drug-form,Text,,,,,,,,,,,,,,,,,,,,,,,,,
29+
Concept,MSFOCP,Implementationtest,,TEST127,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca227,Medical-supply concept class,FULLY_SPECIFIED,,,,,,Medical-supply,Text,,,,,,,,,,,,,,,,,,,,,,,,,
30+
Concept,MSFOCP,Implementationtest,,TEST128,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca228,InteractSet concept class,FULLY_SPECIFIED,,,,,,InteractSet,Text,,,,,,,,,,,,,,,,,,,,,,,,,
31+
Concept,MSFOCP,Implementationtest,,TEST100,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca200,Synonym name type test,SYNONYM,,,,,,Diagnosis,Text,,,,,,,,,,,,,,,,,,,,,,,,,
32+
Concept,MSFOCP,Implementationtest,,TEST100,dd44dfe5-33dc-4f47-a3f4-b89fcee4fca200,Short name name type test,SHORT,,,,,,Diagnosis,Text,,,,,,,,,,,,,,,,,,,,,,,,,

0 commit comments

Comments
 (0)