Ejemplo n.º 1
0
class TestObsFunctions(unittest.TestCase):

    def setUp(self):
        self.obs = Obs(913)
        
    def test_newInstance_method(self):
        concept = Concept()
        concept.setDatatype(True)
        
        self.obsToCopy = Obs(Person(), concept, datetime.now(), Location())
        self.newObs = self.obs.newInstance(self.obsToCopy)
        self.assertFalse(self.newObs == self.obsToCopy)#both have None obsId
        self.assertIsNot(self.newObs, self.obsToCopy) 
        
        self.obsToCopy = Obs(9118)
        self.newObs = self.obs.newInstance(self.obsToCopy)
        self.assertFalse(self.newObs == self.obsToCopy)#newObs has None obsId but obsToCopy has an obsId

    def test_obs_group_methods(self):
        self.obs.setObsGroup(None)
        self.assertFalse(self.obs.hasGroupMembers())

        self.obs1 = Obs(127)
        self.obs2 = Obs(9827)
        concept = Concept()
        concept.setSet(True)
        self.obs.setConcept(concept)
        self.obs.setGroupMembers(set([self.obs1, self.obs2]))
        self.assertTrue(self.obs.getGroupMembers(True) != None)
        self.assertTrue(self.obs.getGroupMembers(False) != None)

        self.obs.addGroupMember(Obs(7543))
        self.obs.addGroupMember(self.obs)
        #self.assertRaises(APIException) #the line before should raise this exception

        self.obs.removeGroupMember(self.obs1)
        self.assertIsNone(self.obs1.getObsGroup())

        #self.obsToCopy should be parent group of obs members.  
        ret = self.obs.getRelatedObservations()
        for i in ret:
            self.assertFalse(i.isObsGrouping())
            
    def test_value_methods(self):
        self.obs.setValueBoolean(True)
        #self.assertIsNotNone(self.obs.getValueCoded())

        self.obs.setValueNumeric(1)
        self.assertTrue(self.obs.getValueAsBoolean())

        self.obs.setValueNumeric(0)
        self.assertFalse(self.obs.getValueAsBoolean())

        self.assertFalse(self.obs.isComplex())
        
        self.obs.setValueAsString("True")
        #self.assertTrue(self.obs.getValueAsString())

        concept1 = Concept()
        concept1.setDatatype(ConceptDatatype(13))
        self.obs.setConcept(concept1)
        self.obs.getConcept().getDatatype().setHl7Abbreviation("NM")
        self.obs.setValueAsString("13")