示例#1
0
class ImporterXmlRpcClientTestCase(TestCase):
    
    fixtures = ['patients', 'clinics']
    
    def setUp(self):
        self.importer = Importer()
        self.user = User.objects.get(username="******")
        
        # patching the client to automatically return our specified result
        # sets without doing an XML-RPC call
        patched_client = PatchedClient(
            patients_update=[{
                    'dr_site_name': '',
                    'dr_site_id': '',
                    'age': '2%s' % i,
                    'sex': random.choice(['Male', 'Female']),
                    'celphone': '2712345678%s' % i,
                    'dr_status': '',
                    'te_id': patient.te_id,
                } for i, patient in enumerate(Patient.objects.all())],
            comingvisits=[{
                    'dr_site_name': '',
                    'dr_site_id': '',
                    'dr_status': '',
                    'scheduled_visit_date': str(datetime.now() + timedelta(days=2)),
                    'key_id': '02-1234%s' % i,
                    'te_id': patient.te_id,
                } for i, patient in enumerate(Patient.objects.all())],
            missedvisits=[{
                    'dr_site_name': '',
                    'dr_site_id': '',
                    'missed_date': str(datetime.now() - timedelta(days=2)), 
                    'dr_status': '', 
                    'key_id': '03-1234%s' % i, 
                    'te_id': patient.te_id
                } for i, patient in enumerate(Patient.objects.all())],
            donevisits=[{
                    'done_date': str(datetime.now() - timedelta(days=2)), 
                    'dr_site_id': '', 
                    'dr_status': '', 
                    'dr_site_name': '', 
                    'scheduled_date': str(datetime.now() - timedelta(days=2)), 
                    'key_id': '04-1234%s' % i, 
                    'te_id': patient.te_id
                } for i, patient in enumerate(Patient.objects.all())],
            deletedvisits=[{
                    'key_id': '02-1234%s' % i,
                    'dr_status': '',
                    'dr_site_id': '',
                    'te_id': patient.te_id,
                    'dr_site_name': ''
                } for i, patient in enumerate(Patient.objects.all())]
        )
        # monkey patching
        self.importer.client.rpc_call = patched_client.rpc_call
        
        self.clinic = Clinic.objects.all()[0] # make sure we have a clinic
        self.assertTrue(Patient.objects.count()) # make sure our fixtures aren't empty
    
    def tearDown(self):
        pass
    
    def test_import_updated_patients(self):
        """The xmlrpc client is largely some boilterplate code and some little
        helpers that transform the returned Dict into class instances. We're
        testing that functionality here. Since all the stuff uses the same boiler
        plate code we're only testing it for one method call.
        """
        updated_patients = self.importer.import_updated_patients(
            user=self.user,
            clinic=self.clinic, 
            since=(datetime.now() - timedelta(days=1)),
            until=datetime.now()
        )
        updated_patients = list(updated_patients)
        self.assertTrue(len(updated_patients), Patient.objects.count())
        self.assertTrue(isinstance(updated_patients[0], Patient))
    
    def test_import_coming_visits(self):
        coming_visits = self.importer.import_coming_visits(
            user=self.user,
            clinic=self.clinic,
            since=(datetime.now() - timedelta(days=1)),
            until=datetime.now()
        )
        coming_visits = list(coming_visits)
        self.assertEquals(len(coming_visits), Patient.objects.count())
        self.assertTrue(isinstance(coming_visits[0], Visit))
    
    def test_missed_visits(self):
        missed_visits = self.importer.import_missed_visits(
            user=self.user,
            clinic=self.clinic,
            since=(datetime.now() - timedelta(days=1)),
            until=datetime.now()
        )
        missed_visits = list(missed_visits)
        self.assertEquals(len(missed_visits), Patient.objects.count())
        self.assertTrue(isinstance(missed_visits[0], Visit))
    
    def test_done_visits(self):
        done_visits = self.importer.import_done_visits(
            user=self.user,
            clinic=self.clinic,
            since=(datetime.now() - timedelta(days=1)),
            until=datetime.now()
        )
        done_visits = list(done_visits)
        self.assertEquals(len(done_visits), Patient.objects.count())
        self.assertTrue(isinstance(done_visits[0], Visit))
    
    def test_deleted_visits(self):
        # first have some coming visits
        coming_visits = list(self.importer.import_coming_visits(
            user=self.user,
            clinic=self.clinic,
            since=(datetime.now() - timedelta(days=1)),
            until=datetime.now()
        ))
        # then mark them as deleted, they're matched because they
        # have the same key_id
        deleted_visits = list(self.importer.import_deleted_visits(
            user=self.user,
            clinic=self.clinic,
            since=(datetime.now() - timedelta(days=1)),
            until=datetime.now()
        ))
        self.assertEquals(len(deleted_visits), Patient.objects.count())
        self.assertTrue(isinstance(deleted_visits[0], Visit))
示例#2
0
class ImporterXmlRpcClientTestCase(TestCase):

    fixtures = ['patients', 'clinics']

    def setUp(self):
        self.importer = Importer()
        self.user = User.objects.get(username="******")

        # patching the client to automatically return our specified result
        # sets without doing an XML-RPC call
        patched_client = PatchedClient(
            patients_update=[{
                'dr_site_name': '',
                'dr_site_id': '',
                'age': '2%s' % i,
                'sex': random.choice(['Male', 'Female']),
                'celphone': '2712345678%s' % i,
                'dr_status': '',
                'te_id': patient.te_id,
            } for i, patient in enumerate(Patient.objects.all())],
            comingvisits=[{
                'dr_site_name':
                '',
                'dr_site_id':
                '',
                'dr_status':
                '',
                'scheduled_visit_date':
                str(datetime.now() + timedelta(days=2)),
                'key_id':
                '02-1234%s' % i,
                'te_id':
                patient.te_id,
            } for i, patient in enumerate(Patient.objects.all())],
            missedvisits=[{
                'dr_site_name':
                '',
                'dr_site_id':
                '',
                'missed_date':
                str(datetime.now() - timedelta(days=2)),
                'dr_status':
                '',
                'key_id':
                '03-1234%s' % i,
                'te_id':
                patient.te_id
            } for i, patient in enumerate(Patient.objects.all())],
            donevisits=[{
                'done_date':
                str(datetime.now() - timedelta(days=2)),
                'dr_site_id':
                '',
                'dr_status':
                '',
                'dr_site_name':
                '',
                'scheduled_date':
                str(datetime.now() - timedelta(days=2)),
                'key_id':
                '04-1234%s' % i,
                'te_id':
                patient.te_id
            } for i, patient in enumerate(Patient.objects.all())],
            deletedvisits=[{
                'key_id': '02-1234%s' % i,
                'dr_status': '',
                'dr_site_id': '',
                'te_id': patient.te_id,
                'dr_site_name': ''
            } for i, patient in enumerate(Patient.objects.all())])
        # monkey patching
        self.importer.client.rpc_call = patched_client.rpc_call

        self.clinic = Clinic.objects.all()[0]  # make sure we have a clinic
        self.assertTrue(
            Patient.objects.count())  # make sure our fixtures aren't empty

    def tearDown(self):
        pass

    def test_import_updated_patients(self):
        """The xmlrpc client is largely some boilterplate code and some little
        helpers that transform the returned Dict into class instances. We're
        testing that functionality here. Since all the stuff uses the same boiler
        plate code we're only testing it for one method call.
        """
        updated_patients = self.importer.import_updated_patients(
            user=self.user,
            clinic=self.clinic,
            since=(datetime.now() - timedelta(days=1)),
            until=datetime.now())
        updated_patients = list(updated_patients)
        self.assertTrue(len(updated_patients), Patient.objects.count())
        self.assertTrue(isinstance(updated_patients[0], Patient))

    def test_import_coming_visits(self):
        coming_visits = self.importer.import_coming_visits(
            user=self.user,
            clinic=self.clinic,
            since=(datetime.now() - timedelta(days=1)),
            until=datetime.now())
        coming_visits = list(coming_visits)
        self.assertEquals(len(coming_visits), Patient.objects.count())
        self.assertTrue(isinstance(coming_visits[0], Visit))

    def test_missed_visits(self):
        missed_visits = self.importer.import_missed_visits(
            user=self.user,
            clinic=self.clinic,
            since=(datetime.now() - timedelta(days=1)),
            until=datetime.now())
        missed_visits = list(missed_visits)
        self.assertEquals(len(missed_visits), Patient.objects.count())
        self.assertTrue(isinstance(missed_visits[0], Visit))

    def test_done_visits(self):
        done_visits = self.importer.import_done_visits(
            user=self.user,
            clinic=self.clinic,
            since=(datetime.now() - timedelta(days=1)),
            until=datetime.now())
        done_visits = list(done_visits)
        self.assertEquals(len(done_visits), Patient.objects.count())
        self.assertTrue(isinstance(done_visits[0], Visit))

    def test_deleted_visits(self):
        # first have some coming visits
        coming_visits = list(
            self.importer.import_coming_visits(user=self.user,
                                               clinic=self.clinic,
                                               since=(datetime.now() -
                                                      timedelta(days=1)),
                                               until=datetime.now()))
        # then mark them as deleted, they're matched because they
        # have the same key_id
        deleted_visits = list(
            self.importer.import_deleted_visits(user=self.user,
                                                clinic=self.clinic,
                                                since=(datetime.now() -
                                                       timedelta(days=1)),
                                                until=datetime.now()))
        self.assertEquals(len(deleted_visits), Patient.objects.count())
        self.assertTrue(isinstance(deleted_visits[0], Visit))