def test_received_failure(self): def call_db_procedure(name, parameters, using): raise ValidationError("Test wrong message", code="E") ets.utils.call_db_procedure = call_db_procedure ets.models.Waybill.objects.filter(pk="ISBX00312A").update(receipt_validated=True, receipt_signed_date=datetime.now()) #Send all validated waybills to compas send_received(ets.models.Waybill.objects.get(pk="ISBX00312A"), self.compas) self.assertFalse(ets.models.Waybill.objects.get(pk="ISBX00312A").receipt_sent_compas) self.assertFalse(ets.models.Waybill.objects.get(pk="ISBX00312A").receipt_validated) #Check compass logger logger = ets.models.CompasLogger.objects.get(waybill__pk='ISBX00312A') self.assertTupleEqual((logger.status, logger.message), (ets.models.CompasLogger.FAILURE, "Test wrong message"))
def test_send_received(self): def call_db_procedure(name, parameters, using): assert name == 'write_waybill.receipt', "Wrong procedure's name" assert isinstance(parameters, tuple), "Parameters must be a tuple" assert using == self.compas, "Wrong compas" ets.utils.call_db_procedure = call_db_procedure waybill = ets.models.Waybill.objects.get(pk="ISBX00312A") #Validate first waybill waybill.receipt_validated = True waybill.receipt_signed_date = datetime.now() waybill.save() #Send all validated waybills to compas send_received(waybill, self.compas) self.assertTrue(ets.models.Waybill.objects.get(pk="ISBX00312A").receipt_sent_compas) #Check compass logger logger = ets.models.CompasLogger.objects.get(waybill__pk='ISBX00312A') self.assertEqual(logger.status, ets.models.CompasLogger.SUCCESS)
def synchronize(self, compas): total = 0 for waybill in Waybill.objects.filter(transport_dispach_signed_date__lte=datetime.now(), validated=True, sent_compas__isnull=True, order__warehouse__compas__pk=compas.pk, order__warehouse__compas__read_only=False): if send_dispatched(waybill, compas.pk): total += 1 for waybill in Waybill.objects.filter(receipt_signed_date__lte=datetime.now(), receipt_validated=True, receipt_sent_compas__isnull=True, destination__compas__pk=compas.pk, destination__compas__read_only=False): if send_received(waybill, compas.pk): total += 1 if total: import_stock(compas.pk)
def send_received_view(request, queryset): """Submits received waybills to COMPAS""" for waybill in queryset: send_received(waybill) return redirect('receipt_validates')