def test_add_range_check(self): rc = ODM.RangeCheck(Comparator="EQ", SoftHard="Soft") tt1 = ODM.TranslatedText(_content="invalid test code", lang="en") tt2 = ODM.TranslatedText(_content="code de test invalide", lang="fr") rc.CheckValue = [ODM.CheckValue(_content="DIABP")] rc.FormalExpression = [ ODM.FormalExpression(Context="Python 3.7", _content="print('hello world')") ] rc.MeasurementUnitRef = ODM.MeasurementUnitRef( MeasurementUnitOID="ODM.MU.UNITS") attrs = {"Comparator": "GT", "SoftHard": "Soft"} rc1 = ODM.RangeCheck(**attrs) tt1 = ODM.TranslatedText(_content="invalid test code", lang="en") rc1.ErrorMessage.TranslatedText = [tt1] rc1.CheckValue = [ODM.CheckValue(_content="SYSBP")] rc1.FormalExpression = [ ODM.FormalExpression(Context="Python 3.7", _content="print('hello world')") ] rc1.MeasurementUnitRef = ODM.MeasurementUnitRef( MeasurementUnitOID="ODM.MU.UNITS") self.item.RangeCheck = [rc, rc1] self.assertEqual(self.item.RangeCheck[0].Comparator, "EQ") self.assertEqual(self.item.RangeCheck[1].Comparator, "GT")
def test_add_formal_expression(self): self.FormalExpression = [ ODM.FormalExpression(Context="Python 3.7", _content="print('hello world')") ] self.assertEqual(self.FormalExpression[0]._content, "print('hello world')")
def test_to_xml(self): attrs = self.set_item_attributes() item = ODM.ItemDef(**attrs) item.Description.TranslatedText = [ ODM.TranslatedText(_content="this is the first test description", lang="en") ] item.Question.TranslatedText = [ ODM.TranslatedText(_content="Any AEs?", lang="en") ] item.ExternalQuestion = ODM.ExternalQuestion(Dictionary="SF36", Version="12", Code="Walks 1-mile") item.CodeListRef = ODM.CodeListRef( CodeListOID="CL.NY_SUB_Y_N_2011-10-24") item.RangeCheck = [ODM.RangeCheck(Comparator="EQ", SoftHard="Soft")] item.RangeCheck[0].CheckValue = [ODM.CheckValue(_content="DIABP")] item.RangeCheck[0].FormalExpression = [ ODM.FormalExpression(Context="Python 3.7", _content="print('hello world')") ] item.RangeCheck[0].MeasurementUnitRef = ODM.MeasurementUnitRef( MeasurementUnitOID="ODM.MU.UNITS") item.RangeCheck[0].ErrorMessage.TranslatedText = [ ODM.TranslatedText(_content="invalid test code", lang="en") ] item_xml = item.to_xml() self.assertEqual(item_xml.attrib["OID"], "ODM.IT.AE.AEYN") cv = item_xml.find("*/CheckValue") self.assertEqual(cv.text, "DIABP") dt = item_xml.findall("Description/TranslatedText") self.assertEqual(len(dt), 1)
def test_no_description(self): tt = ODM.TranslatedText(lang="en", _content="hello, world") validator = METADATA.MetadataSchema() results = tt.verify_conformance(validator) self.methoddef.FormalExpression = [ODM.FormalExpression(Context="Python 3.7", _content="print('hello world')")] self.assertEqual(self.methoddef.FormalExpression[0]._content, "print('hello world')") with self.assertRaises(ValueError): results = self.methoddef.verify_conformance(validator)
def test_to_dict(self): attrs = self.set_attributes() method = ODM.MethodDef(**attrs) desc = ODM.Description() tt1 = ODM.TranslatedText(_content="Age at Screening Date (Screening Date - Birth date)", lang="en") desc.TranslatedText = [tt1] method.Description = desc fex = ODM.FormalExpression(Context="Python 3.7", _content="print('hello world')") method.FormalExpression = [fex] method_dict = method.to_dict() self.assertEqual(method_dict["OID"], "ODM.MT.AGE") self.assertDictEqual(method_dict, self.expected_dict())
def test_to_xml(self): attrs = self.set_attributes() cd = ODM.ConditionDef(**attrs) cd.Description = ODM.Description() cd.Description.TranslatedText = [ ODM.TranslatedText( _content="Skip the BRTHMO field when BRTHYR length NE 4", lang="en") ] cd.FormalExpression = [ ODM.FormalExpression(Context="Python 3.7", _content="BRTHYR != 4") ] cd_xml = cd.to_xml() self.assertEqual(cd_xml.attrib["OID"], "ODM.CD.BRTHMO") fex_xml = cd_xml.find("FormalExpression") self.assertEqual(fex_xml.attrib["Context"], "Python 3.7")
def test_to_dict(self): attrs = self.set_attributes() cd = ODM.ConditionDef(**attrs) cd.Description = ODM.Description() cd.Description.TranslatedText = [ ODM.TranslatedText( _content="Skip the BRTHMO field when BRTHYR length NE 4", lang="en") ] cd.FormalExpression = [ ODM.FormalExpression(Context="Python 3.7", _content="BRTHYR != 4") ] cd_dict = cd.to_dict() print(cd_dict) self.assertEqual(cd_dict["OID"], "ODM.CD.BRTHMO") self.assertDictEqual(cd_dict, self.expected_dict())
def test_ConditionDef(self): attrs = {"OID": "ODM.CD.BRTHMO", "Name": "Skip BRTHMO when no BRTHYR"} cd = ODM.ConditionDef(**attrs) cd.Description = ODM.Description() cd.Description.TranslatedText = [ ODM.TranslatedText( _content="Skip the BRTHMO field when BRTHYR length NE 4", lang="en") ] cd.FormalExpression = [ ODM.FormalExpression(Context="Python 3.7", _content="BRTHYR != 4") ] cd_dict = cd.to_dict() print(cd_dict) is_valid = self.validator.verify_conformance(cd_dict, "ConditionDef") self.assertTrue(is_valid)
def test_RangeCheck(self): rc = ODM.RangeCheck(Comparator="EQ", SoftHard="Soft") tt1 = ODM.TranslatedText(_content="invalid test code", lang="en") tt2 = ODM.TranslatedText(_content="code de test invalide", lang="fr") rc.ErrorMessage.TranslatedText = [tt1, tt2] rc.CheckValue = [ODM.CheckValue(_content="DIABP")] rc.FormalExpression = [ ODM.FormalExpression(Context="Python 3.7", _content="print('hello world')") ] rc.MeasurementUnitRef = ODM.MeasurementUnitRef( MeasurementUnitOID="ODM.MU.UNITS") rc_dict = rc.to_dict() print(rc_dict) is_valid = self.validator.verify_conformance(rc_dict, "RangeCheck") self.assertTrue(is_valid)
def test_set_invalid_description(self): rc = ODM.RangeCheck(Comparator="EQ", SoftHard="Soft") tt1 = ODM.TranslatedText(_content="invalid test code", lang="en") tt2 = ODM.TranslatedText(_content="code de test invalide", lang="fr") rc.ErrorMessage.TranslatedText.append(tt1) rc.ErrorMessage.TranslatedText.append(tt2) rc.CheckValue = [ODM.CheckValue(_content="DIABP")] rc.FormalExpression = [ ODM.FormalExpression(Context="Python 3.7", _content="print('hello world')") ] rc.MeasurementUnitRef = [ ODM.MeasurementUnitRef(MeasurementUnitOID="ODM.MU.UNITS") ] self.item.RangeCheck = [rc] # Description requires a Description object, not a RangeCheck object with self.assertRaises(TypeError): self.item.Description = rc
def test_MethodDef(self): attrs = { "OID": "ODM.MT.AGE", "Name": "Algorithm to derive AGE", "Type": "Computation" } method = ODM.MethodDef(**attrs) method.Description = ODM.Description() method.Description.TranslatedText.append( ODM.TranslatedText( _content="Age at Screening Date (Screening Date - Birth date)", lang="en")) method.FormalExpression.append( ODM.FormalExpression(Context="Python 3.7", _content="print('hello world')")) is_valid = self.validator.verify_conformance(method.to_dict(), "MethodDef") self.assertTrue(is_valid)
def test_add_formal_expression(self): fex = ODM.FormalExpression(Context="Python 3.7", _content="BRTHYR != 4") self.cond_def.FormalExpression = [fex] self.assertEqual(self.cond_def.FormalExpression[0]._content, "BRTHYR != 4")