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()
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)
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)
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)
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)
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)
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)
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)
def test_basic_load(self): self.assertEqual(Payment.objects.count(), 0) loader = PaymentLoader(self.data) loader.load() self.assertEqual(Payment.objects.count(), 10)