def test_as_dte_data_l1(self) -> None:
     self.assertEqual(
         self.dte_xml_data_1.as_dte_data_l1(),
         DteDataL1(
             emisor_rut=Rut('76354771-K'),
             tipo_dte=TipoDteEnum.FACTURA_ELECTRONICA,
             folio=170,
             fecha_emision_date=date(2019, 4, 1),
             receptor_rut=Rut('96790240-3'),
             monto_total=2996301,
         ))
     self.assertEqual(
         self.dte_xml_data_2.as_dte_data_l1(),
         DteDataL1(
             emisor_rut=Rut('60910000-1'),
             tipo_dte=TipoDteEnum.FACTURA_ELECTRONICA,
             folio=2336600,
             fecha_emision_date=date(2019, 8, 8),
             receptor_rut=Rut('76555835-2'),
             monto_total=10642,
         ))
    def test_as_dte_data_l1(self):
        self._set_obj_1()

        obj = self.obj_1
        expected_output = DteDataL1(
            emisor_rut=Rut('76354771-K'),
            tipo_dte=TipoDteEnum.FACTURA_ELECTRONICA,
            folio=170,
            fecha_emision_date=date(2019, 4, 1),
            receptor_rut=Rut('96790240-3'),
            monto_total=2996301,
        )
        self.assertEqual(obj.as_dte_data_l1(), expected_output)
    def _set_obj_1(self) -> None:
        obj = CesionAecXml(
            dte=DteDataL1(
                emisor_rut=Rut('76354771-K'),
                tipo_dte=TipoDteEnum.FACTURA_ELECTRONICA,
                folio=170,
                fecha_emision_date=date(2019, 4, 1),
                receptor_rut=Rut('96790240-3'),
                monto_total=2996301,
            ),
            seq=1,
            cedente_rut=Rut('76354771-K'),
            cesionario_rut=Rut('76389992-6'),
            monto_cesion=2996301,
            fecha_cesion_dt=tz_utils.convert_naive_dt_to_tz_aware(
                dt=datetime(2019, 4, 1, 10, 22, 2),
                tz=CesionAecXml.DATETIME_FIELDS_TZ,
            ),
            fecha_ultimo_vencimiento=date(2019, 5, 1),
            cedente_razon_social=
            'SERVICIOS BONILLA Y LOPEZ Y COMPAÑIA LIMITADA',
            cedente_direccion='MERCED 753  16 ARBOLEDA DE QUIILOTA',
            cedente_email='*****@*****.**',
            cedente_persona_autorizada_rut=Rut('76354771-K'),
            cedente_persona_autorizada_nombre=
            'SERVICIOS BONILLA Y LOPEZ Y COMPAÑIA LIM',
            cesionario_razon_social='ST CAPITAL S.A.',
            cesionario_direccion='Isidora Goyenechea 2939 Oficina 602',
            cesionario_email='*****@*****.**',
            dte_deudor_email=None,
            cedente_declaracion_jurada=
            ('Se declara bajo juramento que SERVICIOS BONILLA Y LOPEZ Y COMPAÑIA '
             'LIMITADA, RUT 76354771-K ha puesto a disposición del cesionario ST '
             'CAPITAL S.A., RUT 76389992-6, el o los documentos donde constan los '
             'recibos de las mercaderías entregadas o servicios prestados, entregados '
             'por parte del deudor de la factura MINERA LOS PELAMBRES, RUT 96790240-3, '
             'deacuerdo a lo establecido en la Ley N°19.983.'),
        )
        self.assertIsInstance(obj, CesionAecXml)

        self.obj_1 = obj
    def _set_obj_2(self) -> None:
        obj = CesionAecXml(
            dte=DteDataL1(
                emisor_rut=Rut('76354771-K'),
                tipo_dte=TipoDteEnum.FACTURA_ELECTRONICA,
                folio=170,
                fecha_emision_date=date(2019, 4, 1),
                receptor_rut=Rut('96790240-3'),
                monto_total=2996301,
            ),
            seq=2,
            cedente_rut=Rut('76389992-6'),
            cesionario_rut=Rut('76598556-0'),
            monto_cesion=2996301,
            fecha_cesion_dt=tz_utils.convert_naive_dt_to_tz_aware(
                dt=datetime(2019, 4, 5, 12, 57, 32),
                tz=CesionAecXml.DATETIME_FIELDS_TZ,
            ),
            fecha_ultimo_vencimiento=date(2019, 5, 1),
            cedente_razon_social='ST CAPITAL S.A.',
            cedente_direccion='Isidora Goyenechea 2939 Oficina 602',
            cedente_email='*****@*****.**',
            cedente_persona_autorizada_rut=Rut('16360379-9'),
            cedente_persona_autorizada_nombre='ANDRES  PRATS VIAL',
            cesionario_razon_social=
            'Fondo de Inversión Privado Deuda y Facturas',
            cesionario_direccion='Arrayan 2750 Oficina 703 Providencia',
            cesionario_email='*****@*****.**',
            dte_deudor_email=None,
            cedente_declaracion_jurada=
            ('Se declara bajo juramento que ST CAPITAL S.A., RUT 76389992-6 ha puesto '
             'a disposicion del cesionario Fondo de Inversión Privado Deuda y Facturas, '
             'RUT 76598556-0, el documento validamente emitido al deudor MINERA LOS '
             'PELAMBRES, RUT 96790240-3.'),
        )
        self.assertIsInstance(obj, CesionAecXml)

        self.obj_2 = obj
    def _set_obj_1(self) -> None:
        obj_dte_signature_value = encoding_utils.decode_base64_strict(
            read_test_file_bytes(
                'test_data/sii-crypto/DTE--76354771-K--33--170-signature-value-base64.txt',
            ), )
        obj_dte_signature_x509_cert_der = read_test_file_bytes(
            'test_data/sii-crypto/DTE--76354771-K--33--170-cert.der', )
        obj_dte = DteXmlData(
            emisor_rut=Rut('76354771-K'),
            tipo_dte=TipoDteEnum.FACTURA_ELECTRONICA,
            folio=170,
            fecha_emision_date=date(2019, 4, 1),
            receptor_rut=Rut('96790240-3'),
            monto_total=2996301,
            emisor_razon_social='INGENIERIA ENACON SPA',
            receptor_razon_social='MINERA LOS PELAMBRES',
            fecha_vencimiento_date=None,
            firma_documento_dt=tz_utils.convert_naive_dt_to_tz_aware(
                dt=datetime(2019, 4, 1, 1, 36, 40),
                tz=DteXmlData.DATETIME_FIELDS_TZ,
            ),
            signature_value=obj_dte_signature_value,
            signature_x509_cert_der=obj_dte_signature_x509_cert_der,
            emisor_giro='Ingenieria y Construccion',
            emisor_email='*****@*****.**',
            receptor_email=None,
        )

        obj_cesion_1 = CesionAecXml(
            dte=DteDataL1(
                emisor_rut=Rut('76354771-K'),
                tipo_dte=TipoDteEnum.FACTURA_ELECTRONICA,
                folio=170,
                fecha_emision_date=date(2019, 4, 1),
                receptor_rut=Rut('96790240-3'),
                monto_total=2996301,
            ),
            seq=1,
            cedente_rut=Rut('76354771-K'),
            cesionario_rut=Rut('76389992-6'),
            monto_cesion=2996301,
            fecha_cesion_dt=tz_utils.convert_naive_dt_to_tz_aware(
                dt=datetime(2019, 4, 1, 10, 22, 2),
                tz=CesionAecXml.DATETIME_FIELDS_TZ,
            ),
            fecha_ultimo_vencimiento=date(2019, 5, 1),
            cedente_razon_social=
            'SERVICIOS BONILLA Y LOPEZ Y COMPAÑIA LIMITADA',
            cedente_direccion='MERCED 753  16 ARBOLEDA DE QUIILOTA',
            cedente_email='*****@*****.**',
            cedente_persona_autorizada_rut=Rut('76354771-K'),
            cedente_persona_autorizada_nombre=
            'SERVICIOS BONILLA Y LOPEZ Y COMPAÑIA LIM',
            cesionario_razon_social='ST CAPITAL S.A.',
            cesionario_direccion='Isidora Goyenechea 2939 Oficina 602',
            cesionario_email='*****@*****.**',
            dte_deudor_email=None,
            cedente_declaracion_jurada=
            ('Se declara bajo juramento que SERVICIOS BONILLA Y LOPEZ Y COMPAÑIA '
             'LIMITADA, RUT 76354771-K ha puesto a disposición del cesionario ST '
             'CAPITAL S.A., RUT 76389992-6, el o los documentos donde constan los '
             'recibos de las mercaderías entregadas o servicios prestados, entregados '
             'por parte del deudor de la factura MINERA LOS PELAMBRES, RUT 96790240-3, '
             'deacuerdo a lo establecido en la Ley N°19.983.'),
        )

        obj_cesion_2 = CesionAecXml(
            dte=DteDataL1(
                emisor_rut=Rut('76354771-K'),
                tipo_dte=TipoDteEnum.FACTURA_ELECTRONICA,
                folio=170,
                fecha_emision_date=date(2019, 4, 1),
                receptor_rut=Rut('96790240-3'),
                monto_total=2996301,
            ),
            seq=2,
            cedente_rut=Rut('76389992-6'),
            cesionario_rut=Rut('76598556-0'),
            monto_cesion=2996301,
            fecha_cesion_dt=tz_utils.convert_naive_dt_to_tz_aware(
                dt=datetime(2019, 4, 5, 12, 57, 32),
                tz=CesionAecXml.DATETIME_FIELDS_TZ,
            ),
            fecha_ultimo_vencimiento=date(2019, 5, 1),
            cedente_razon_social='ST CAPITAL S.A.',
            cedente_direccion='Isidora Goyenechea 2939 Oficina 602',
            cedente_email='*****@*****.**',
            cedente_persona_autorizada_rut=Rut('16360379-9'),
            cedente_persona_autorizada_nombre='ANDRES  PRATS VIAL',
            cesionario_razon_social=
            'Fondo de Inversión Privado Deuda y Facturas',
            cesionario_direccion='Arrayan 2750 Oficina 703 Providencia',
            cesionario_email='*****@*****.**',
            dte_deudor_email=None,
            cedente_declaracion_jurada=
            ('Se declara bajo juramento que ST CAPITAL S.A., RUT 76389992-6 ha puesto '
             'a disposicion del cesionario Fondo de Inversión Privado Deuda y Facturas, '
             'RUT 76598556-0, el documento validamente emitido al deudor MINERA LOS '
             'PELAMBRES, RUT 96790240-3.'),
        )

        obj = AecXml(
            dte=obj_dte,
            cedente_rut=Rut('76389992-6'),
            cesionario_rut=Rut('76598556-0'),
            fecha_firma_dt=tz_utils.convert_naive_dt_to_tz_aware(
                dt=datetime(2019, 4, 5, 12, 57, 32),
                tz=AecXml.DATETIME_FIELDS_TZ,
            ),
            # signature_value=None,
            # signature_x509_cert_der=None,
            cesiones=[
                obj_cesion_1,
                obj_cesion_2,
            ],
            contacto_nombre='ST Capital Servicios Financieros',
            contacto_telefono=None,
            contacto_email='*****@*****.**',
        )
        self.assertIsInstance(obj, AecXml)

        self.obj_1 = obj
        self.obj_1_dte = obj_dte
        self.obj_1_cesion_1 = obj_cesion_1
        self.obj_1_cesion_2 = obj_cesion_2