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")
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()
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()