def handle(self, *args, **options):
     file_name = options['file_name'][0]
     with open(file_name, 'r') as f:
         data = f.read()
     json_data = json.loads(data)
     loader = PaymentLoader(json_data)
     loader.load()
Esempio n. 2
0
 def test_fetching(self):
     data = generate_payment_json(10)
     loader = PaymentLoader(data)
     loader.load()
     response = self.client.get('/payments/')
     data = json.loads(response.content)
     self.assertEqual(len(data), 10)
Esempio n. 3
0
 def post(self, request):
     data = request.body
     try:
         json_data = json.loads(data)
         loader = PaymentLoader(json_data)
         # in production I'd rather use async queue for this task
         # as this is potentially long task - it is not the best idea
         # to process it before response
         loader.load()
     except Exception as ex:
         return JsonResponse({'error': '{}'.format(ex)}, status=400)
     return JsonResponse({'status': 'Data is processed'}, status=200)
Esempio n. 4
0
    def test_fetching_with_filter(self):
        data = generate_payment_json(10)
        data[0]['patientId'] = '___SOME UNIQUE EXT ID HERE___'
        data[1]['patientId'] = '___SOME UNIQUE EXT ID HERE___'
        data[2]['patientId'] = '___SOME UNIQUE EXT ID HERE___'
        loader = PaymentLoader(data)
        loader.load()
        response = self.client.get('/payments/')
        data = json.loads(response.content)
        self.assertEqual(len(data), 10)

        response = self.client.get(
            '/payments/?external_id=___SOME UNIQUE EXT ID HERE___')
        data = json.loads(response.content)
        self.assertEqual(len(data), 3)
Esempio n. 5
0
 def test_delete_some_patients(self):
     data = generate_payment_json(10)
     loader = PaymentLoader(data)
     loader.load()
     self.assertEqual(Payment.objects.count(), 10)
     data = data[:5]
     loader = PaymentLoader(data)
     loader.load()
     self.assertEqual(Payment.objects.count(), 5)
Esempio n. 6
0
 def test_fetching_payment_max_filter(self):
     data = generate_patient_json(10)
     loader = PatientLoader(data)
     loader.load()
     payment_data = list()
     payment_data.append(
         generate_payment_for_patient(5, data[0]['externalId']))
     payment_data.append(
         generate_payment_for_patient(6, data[0]['externalId']))
     payment_data.append(
         generate_payment_for_patient(15, data[1]['externalId']))
     payment_data.append(
         generate_payment_for_patient(62, data[2]['externalId']))
     payment_loader = PaymentLoader(payment_data)
     payment_loader.load()
     response = self.client.get('/patients/?payment_max=12')
     data = json.loads(response.content)
     self.assertEqual(len(data), 8)
Esempio n. 7
0
 def test_change_amount(self):
     data = generate_payment_json(10)
     loader = PaymentLoader(data)
     loader.load()
     self.assertEqual(Payment.objects.count(), 10)
     ext_id = data[0][PAYMENT_EXT_ID]
     data[0]['amount'] = 0.99
     loader = PaymentLoader(data)
     self.assertNotEqual(
         Payment.objects.get(external_id=ext_id).amount, 0.99)
     loader.load()
     self.assertEqual(Payment.objects.get(external_id=ext_id).amount, 0.99)
Esempio n. 8
0
 def test_basic_large_load(self):
     data = generate_payment_json(10000)
     self.assertEqual(Payment.objects.count(), 0)
     loader = PaymentLoader(data)
     loader.load()
     self.assertEqual(Payment.objects.count(), 10000)
Esempio n. 9
0
 def test_basic_load(self):
     self.assertEqual(Payment.objects.count(), 0)
     loader = PaymentLoader(self.data)
     loader.load()
     self.assertEqual(Payment.objects.count(), 10)