コード例 #1
0
def test_deshabilitar_caja_abierta(context):
    driver_cajero = context.driver_manager.main_driver
    caja = context.sucursal.cajas[0]
    cajero = context.cajeros[0]
    editar_caja_action = EditarCajaAction(context)

    apertura = Apertura({moneda: 0 for moneda in caja.monedas_permitidas})
    apertura_action = AperturaOperableAction(context)

    with allure.step("Usuario A ingresa como Cajero"):
        LoginAction(context).verify_state().do(cajero, caja).success("Apertura Caja")

    with allure.step("Apertura la caja"):
        apertura_action.fast_forward(cajero, caja, apertura)

    driver_administrador = context.driver_manager.new_driver()
    context.page.set_active_driver(driver_administrador)
    with allure.step("Usuario B ingresa como administrador"):
        LoginAction(context).verify_state().do(context.administrador).success("Dashboard")

    with allure.step("deshabilita la caja"):
        IrEdicionSucursalAction(context).do(context.sucursal).success()
        editar_caja_action.verify_state(caja)
        caja.desactivar()
        editar_caja_action.do(caja)

    with allure.step("pero no puede porque se encuentra abierta por Usuario B"):
        editar_caja_action.failure(caja, "abierta")
        caja.activar()
        GuardarSucursalAction(context).verify_state(context.sucursal)

    logout_action = LogoutAction(context)
    for driver, usuario in [[driver_administrador, context.administrador], [driver_cajero, cajero]]:
        context.page.set_active_driver(driver)
        logout_action.verify_state(usuario).do().success()
コード例 #2
0
def test_deshabilitar_caja_cerrada_parcialmente(context):
    caja = context.sucursal.cajas[0]
    cajero = context.cajeros[0]

    apertura = Apertura({moneda: 0 for moneda in caja.monedas_permitidas})
    apertura_action = AperturaOperableAction(context)

    cierre = CierreParcial({moneda: 0 for moneda in caja.monedas_permitidas})
    cierre_action = CierreParcialCajaAction(context)

    login_action = LoginAction(context)
    editar_caja_action = EditarCajaAction(context)

    with allure.step("El usuario cuenta con una caja cerrada parcialmente"):
        apertura_action.fast_forward(cajero, caja, apertura, asignar_operador=True,
                                     redireccionar=False)
        caja.agregar_operacion(apertura)
        cierre_action.fast_forward(cajero, caja, cierre, redirect=False)
        caja.agregar_operacion(cierre)

    with allure.step("el usuario ingresa como administrador"):
        login_action.verify_state().do(context.administrador).success("Dashboard")

    with allure.step("e intenta deshabilita la caja"):
        IrEdicionSucursalAction(context).verify_state().do(context.sucursal).success()
        editar_caja_action.verify_state(caja)
        caja.desactivar()
        editar_caja_action.do(caja)

    with allure.step("pero no puede porque se encuentra cerrada parcialmente"):
        editar_caja_action.failure(caja, "abierta")
コード例 #3
0
def test_deshabilitar_caja_con_saldo(context):
    caja = context.sucursal.cajas[0]
    cajero = context.cajeros[0]

    apertura = Apertura({moneda: 100 for moneda in caja.monedas_permitidas})
    apertura_action = AperturaOperableAction(context)

    cierre = CierreTotal({moneda: 100 for moneda in caja.monedas_permitidas})
    cierre_action = CierreTotalCajaAction(context)

    editar_caja_action = EditarCajaAction(context)

    with allure.step("El usuario cuenta con una caja con saldo"):
        apertura_action.fast_forward(cajero, caja, apertura, desbloquear=True, asignar_operador=True,
                                     redireccionar=False)
        caja.agregar_operacion(apertura)
        cierre_action.fast_forward(cajero, caja, cierre, redirect=False)
        caja.agregar_operacion(cierre)

    with allure.step("Ingresa como administrador"):
        LoginAction(context).verify_state().do(context.administrador).success("Dashboard")

    with allure.step("Intenta deshabilita la caja"):
        IrEdicionSucursalAction(context).verify_state().do(context.sucursal).success()
        editar_caja_action.verify_state(caja)
        caja.desactivar()
        editar_caja_action.do(caja)

    with allure.step("Pero no puede porque su saldo es mayor a 0"):
        editar_caja_action.failure(caja, "con saldo")
        caja.activar()
        GuardarSucursalAction(context).verify_state(context.sucursal)
        LogoutAction(context).verify_state(context.administrador).do().success()
コード例 #4
0
def test_deshabilitar_moneda_apertura(context):
    caja = context.sucursal.cajas[0]
    editar_caja_action = EditarCajaAction(context)

    with allure.step("El usuario ingresa como Administrador"):
        LoginAction(context).verify_state().do(
            context.administrador).success("Dashboard")

    moneda_eliminada = choice(tuple(caja.monedas_permitidas))
    with allure.step(f"deshabilita la moneda {moneda_eliminada.codigo}"):
        IrEdicionSucursalAction(context).verify_state().do(
            context.sucursal).success()
        editar_caja_action.verify_state(caja)
        caja.deshabilitar_moneda_giro("Ambos", moneda_eliminada)
        editar_caja_action.do(caja).success()
        GuardarSucursalAction(context).verify_state(
            context.sucursal).do().success()
        LogoutAction(context).verify_state(
            context.administrador).do().success()

    with allure.step("El cajero asignado ingresa al sistema"):
        LoginAction(context).verify_state().do(context.cajeros[0],
                                               caja).success("Apertura Caja")

    with allure.step("Solo se muestra una moneda operable"):
        AperturaOperableAction(context).verify_state(caja)

    LogoutAction(context).verify_state(context.cajeros[0]).do().success()
コード例 #5
0
def test_habilitar_caja(context):
    caja = context.sucursal.cajas[0]
    ir_edicion_sucursal_action = IrEdicionSucursalAction(context)
    editar_caja_action = EditarCajaAction(context)
    guardar_sucursal_action = GuardarSucursalAction(context)

    with allure.step("El usuario ingresa como Administrador"):
        LoginAction(context).verify_state().do(context.administrador).success("Dashboard")

    with allure.step("deshabilita la caja de la sucursal"):
        ir_edicion_sucursal_action.do(context.sucursal).success()
        editar_caja_action.verify_state(caja)
        caja.desactivar()
        editar_caja_action.do(caja).success()
        guardar_sucursal_action.verify_state(context.sucursal)

    with allure.step("Habilita la caja de la sucursal"):
        editar_caja_action.verify_state(caja)
        caja.activar()
        editar_caja_action.do(caja).success()
        guardar_sucursal_action.verify_state(context.sucursal)

    LogoutAction(context).verify_state(context.administrador).do().success()
コード例 #6
0
def test_transferencia_caja_caja_sin_monedas(context):
    driver_origen = context.driver_manager.main_driver
    cajero_origen = context.cajeros[0]
    cajero_destino = context.cajeros[1]

    caja_origen = context.sucursal.cajas[0]
    caja_destino = context.sucursal.cajas[1]
    moneda_origen = 'ARS'
    moneda_destino = 'PEN'
    monedas_eliminada_origen = [
        moneda for moneda in caja_origen.monedas
        if moneda.codigo != moneda_origen
    ]
    monedas_eliminada_destino = [
        moneda for moneda in caja_destino.monedas
        if moneda.codigo != moneda_destino
    ]

    login_action = LoginAction(context)
    logout_action = LogoutAction(context)
    apertura_action = AperturaOperableAction(context)
    seleccionar_destinatario_action = SeleccionarDestinoTransferenciaAction(
        context)
    editar_caja_action = EditarCajaAction(context)

    with allure.step("El usuario ingresa como Administrador"):
        LoginAction(context).verify_state().do(
            context.administrador).success("Dashboard")

    IrEdicionSucursalAction(context).verify_state().do(
        context.sucursal).success()
    for c, monedas in [[caja_origen, monedas_eliminada_origen],
                       [caja_destino, monedas_eliminada_destino]]:
        editar_caja_action.verify_state(c)
        [c.deshabilitar_moneda_giro("Ambos", moneda) for moneda in monedas]
        editar_caja_action.do(c).success()
    logout_action.verify_state(context.administrador).do().success()

    apertura_origen = Apertura({m: 0 for m in caja_origen.monedas_permitidas})
    apertura_destino = Apertura(
        {m: 0
         for m in caja_destino.monedas_permitidas})

    with allure.step("El cajero de origen apertura su caja"):
        login_action.verify_state().do(cajero_origen,
                                       caja_origen).success("Apertura Caja")
        apertura_action.fast_forward(cajero_origen, caja_origen,
                                     apertura_origen)
        caja_origen.agregar_operacion(apertura_origen)

    driver_destino = context.driver_manager.new_driver()
    context.page.set_active_driver(driver_destino)
    with allure.step("El cajero de destino apertura su caja"):
        login_action.verify_state().do(cajero_destino,
                                       caja_destino).success("Apertura Caja")
        apertura_action.fast_forward(cajero_destino, caja_destino,
                                     apertura_destino)
        caja_destino.agregar_operacion(apertura_destino)

    context.page.set_active_driver(driver_origen)
    with allure.step(
            "El cajero de origen intenta generar una transferencia de salida hacia caja destino"
    ):
        seleccionar_destinatario_action.verify_state(caja_origen).do(
            caja_destino)

    with allure.step(
            "Pero no puede porque no hay monedas en comun entre las cajas"):
        seleccionar_destinatario_action.failure()

    for driver, usuario in [[driver_destino, cajero_destino],
                            [driver_origen, cajero_origen]]:
        context.page.set_active_driver(driver)
        logout_action.verify_state(usuario).do().success()
コード例 #7
0
def test_deshabilitar_envio_recibo_giros(context):
    caja = context.sucursal.cajas[0]
    editar_caja_action = EditarCajaAction(context)
    operador_sin_operaciones_action = OperadorSinAccionesLoginAction(context)

    with allure.step("El usuario ingresa como Administrador"):
        LoginAction(context).do(context.administrador).success("Dashboard")

    with allure.step("deshabilita el envio de giros de la caja"):
        IrEdicionSucursalAction(context).do(context.sucursal).success()
        editar_caja_action.verify_state(caja)
        caja.envia_giros = False
        editar_caja_action.do(caja)

    with allure.step("el envio de giros se deshabilita correctamente"):
        editar_caja_action.success()

    with allure.step("deshabilita el recibo de giros de la caja"):
        editar_caja_action.verify_state(caja)
        caja.recibe_giros = False
        editar_caja_action.do(caja)

    with allure.step("el recibo de giros se deshabilita correctamente"):
        editar_caja_action.success()
        LogoutAction(context).verify_state(
            context.administrador).do().success()

    with allure.step("El cajero asignado intenta aperturar la caja"):
        operador_sin_operaciones_action.verify_state(caja).do(
            context.cajeros[0])

    with allure.step(
            "Pero no puede porque la caja no tiene operaciones activas"):
        operador_sin_operaciones_action.success()

    LogoutAction(context).verify_state(context.cajeros[0]).do().success()