Esempio n. 1
0
def worker(req):
    context = {}

    contract = req.params()['service_contract']
    service  = req.params()['service']

    balancesView = BalancesView(contract=contract)

    if balancesView.getSuccess():
        balances = balancesView.get()
        periods  = balancesView.getPeriods()

        context['balances'] = balances
        context['periods']  = periods

    paymentsView = PaymentsView(contract=contract)

    if paymentsView.getSuccess():
        payments       = paymentsView.get()
        payment_months = paymentsView.getMonths()

        context['payments']        = payments
        context['payment_months']  = payment_months

    #определяем ссылки на другие услуги
    _service = Service(contract=contract)
    context['show_internet_link'] = _service.is_internet_activated()
    context['show_phone_link']    = _service.is_phone_activated()

    #определяем остальные переменные контекста
    context['fio']             = contract.fio
    context['contract']        = contract.contract
    context['change_passwd']   = False

    return {'success': True, 'template': '%s.html' % service, 'template_context': context}
Esempio n. 2
0
    def test_enable_internet(self):      
        i = 0
        for contract in self.contracts:
            service = Service(contract=contract)

            if service.is_internet_activated():

                internet_contract = contract.get_service_contract(self.service)

                if internet_contract:
                    #выключаем интернет абоненту - имитируя блокировку интернет за неуплату
                    if internet_contract.status == settings.CONTRACT_STATUS['active']:
                        internet_contract.status = settings.CONTRACT_STATUS['closed']
                        internet_contract.save()

                    limit_down = LimitDown(contract=contract)
                    if limit_down.can_make():
                        self.client.post('/login', {'contract': contract.contract, 'password': contract.password})
                        response = self.client.get('/enable_internet')

                        self.assertEqual(json.loads(response.content)['success'], True)
                        self.assertEqual(json.loads(response.content)['title'],   u'Интернет включён на %s дня' % limit_down.get_trust_days_duration())
                        self.assertEqual(json.loads(response.content)['message'], u'Не забудьте внести оплату в течении указанного периода. Важно: для активации вашего тарифа, завершите текущее соединение с интернетом и через пять минут подключитесь заново.')

                        #проверяем ContractLimit
                        contract_limit = ContractLimit.objects.get(contract=internet_contract, date__gte=getFirstDay(), date__lte=getLastDay())
                        self.assertEqual(contract_limit.summa, settings.TRUST_PAY_LIMIT)
                        self.assertEqual(contract_limit.days, unicode(limit_down.get_trust_days_duration()))

                        #проверяем TaskLimitRestoration
                        task_limit_restoration = TaskLimitRestoration.objects.get( \
                            contract=internet_contract, \
                            date=datetime.now() + timedelta(days=limit_down.get_trust_days_duration()))
                        self.assertEqual(task_limit_restoration.summa, settings.TRUST_PAY_LIMIT)

                        #проверяем ContractStatusLog
                        contract_status_log = ContractStatusLog.objects.get(contract=internet_contract, start_date=date.today(), comment=u'Включение услуги при понижении лимита через личный кабинет')
                        self.assertEqual(contract_status_log.status, settings.CONTRACT_STATUS['active'])

                        #проверяем что статусы об отключении при недостатке средств убраны
                        #contract_statuses = ContractStatus.objects.filter(contract=contract, status=settings.CONTRACT_STATUS['closed'], start_date__gte=getFirstDay())
                        #self.assertEqual(len(contract_statuses), 0)

                        #проверяем что создана запись о том что услуга включена через обещанный платёж
                        contract_status = ContractStatus.objects.get(contract=internet_contract, status=settings.CONTRACT_STATUS['active'], start_date=date.today(), comment=u'Включение услуги при понижении лимита через личный кабинет')
                        self.assertEqual(contract_status.end_date, date.today() + timedelta(days=limit_down.get_trust_days_duration() - 1))

                        #проверяем что текущий лимит абонента понижен
                        internet_contract = Contract.objects.get(contract=internet_contract)
                        self.assertEqual(internet_contract.limit, settings.TRUST_PAY_LIMIT)

                        #logout
                        self.client.post('/logout')
                        i = i + 1

        print u"Test: <test_enable_internet>. Всего договоров: %i, Обработано: %i" % (len(self.contracts), i)
Esempio n. 3
0
    def test_internet(self):      
        for contract in self.contracts:
            self.client.post('/login', {'contract': contract.contract, 'password': contract.password})
            response = self.client.get('/internet')

            service = Service(contract=contract)

            if service.is_internet_activated():
                title_exist   = True if 'Произошла ошибка!'                                                                       in response.content else False
                message_exist = True if 'Данная услуга у вас не привязана к данному логину. Предварительно осуществите привязку.' in response.content else False

                self.assertEqual(title_exist, False)
                self.assertEqual(message_exist, False)

                promise_pay_header_exist          = True if '<li><a href="#promise_pay">Обещанный платёж</a></li>'   in response.content else False

                promise_pay_error_title_exist     = True if 'Услуга &quot;Обещанный платёж&quot; не доступна!'       in response.content else False            
                promise_pay_bad_balance_exist     = True if 'Текущий баланс не положителен.'                         in response.content else False
                promise_pay_already_used_exist    = True if 'Данная услуга уже была активирована в текущем месяце.'  in response.content else False
                promise_pay_not_blocked_exist     = True if 'Интернет на текущий момент не заблокирован.'            in response.content else False
                promise_pay_manual_limit_exist    = True if 'Понижение лимита уже было произведено вручную.'         in response.content else False
                promise_pay_corporate_exist       = True if 'Данный договор представляет юридическое лицо.'          in response.content else False

                limit_down = LimitDown(contract=contract)
                if limit_down.can_make():
                    self.assertEqual(promise_pay_header_exist,         True)

                    self.assertEqual(promise_pay_error_title_exist,    False)

                    self.assertEqual(promise_pay_bad_balance_exist,     False)
                    self.assertEqual(promise_pay_already_used_exist,    False)
                    self.assertEqual(promise_pay_not_blocked_exist,     False)
                    self.assertEqual(promise_pay_manual_limit_exist,    False)
                    self.assertEqual(promise_pay_corporate_exist,       False)
                else:
                    self.assertEqual(promise_pay_error_title_exist,    True)

                    if limit_down.get_trust_pay_not_available_reason()['message'] == u'Текущий баланс не положителен.':
                        self.assertEqual(promise_pay_bad_balance_exist, True)

                    if limit_down.get_trust_pay_not_available_reason()['message'] == u'Данная услуга уже была активирована в текущем месяце.':
                        self.assertEqual(promise_pay_already_used_exist, True)

                    if limit_down.get_trust_pay_not_available_reason()['message'] == u'Интернет на текущий момент не заблокирован.':
                        self.assertEqual(promise_pay_not_blocked_exist, True)

                    if limit_down.get_trust_pay_not_available_reason()['message'] == u'Понижение лимита уже было произведено вручную.':
                        self.assertEqual(promise_pay_manual_limit_exist, True)

                    if limit_down.get_trust_pay_not_available_reason()['message'] == u'Данный договор представляет юридическое лицо.':
                        self.assertEqual(promise_pay_corporate_exist, True)                        

            #logout
            self.client.post('/logout')
Esempio n. 4
0
def worker(req):
    contract = req.params()['auth_contract']

    context = {}
    context['fio']           = contract.fio
    context['contract']      = contract.contract
    context['change_passwd'] = False

    service = Service(contract=contract)

    context['activate_internet'] = service.is_internet_activated()
    context['activate_tv']       = service.is_tv_activated()
    context['activate_phone']    = service.is_phone_activated()
   
    return {'success': True, 'template': 'service.html', 'template_context': context}
Esempio n. 5
0
    def test_not_activated_internet(self):      
        for contract in self.contracts:
            self.client.post('/login', {'contract': contract.contract, 'password': contract.password})
            response = self.client.get('/internet')

            service = Service(contract=contract)

            if not service.is_internet_activated():               
                title_exist   = True if 'Произошла ошибка!'                                                                       in response.content else False
                message_exist = True if 'Данная услуга у вас не привязана к данному логину. Предварительно осуществите привязку.' in response.content else False

                self.assertEqual(title_exist, True)
                self.assertEqual(message_exist, True)

            #logout
            self.client.post('/logout')                
Esempio n. 6
0
    def test_enable_internet_on_already_enabled(self):
        i = 0
        for contract in self.contracts:

            service = Service(contract=contract)

            if service.is_internet_activated():

                internet_contract = contract.get_service_contract(self.service)

                if internet_contract:
                    # выключаем интернет абоненту - имитируя блокировку интернет за неуплату
                    if internet_contract.status == settings.CONTRACT_STATUS["active"]:
                        internet_contract.status = settings.CONTRACT_STATUS["closed"]
                        internet_contract.save()

                    limit_down = LimitDown(contract=contract)
                    if limit_down.can_make():

                        self.client.post("/login", {"contract": contract.contract, "password": contract.password})

                        # первый раз включаем интренет
                        response = self.client.get("/enable_internet")

                        # второй раз включаем интернет
                        response = self.client.get("/enable_internet")

                        self.assertEqual(json.loads(response.content)["success"], False)
                        self.assertEqual(
                            json.loads(response.content)["title"], u'Услуга "Обещанный платёж" не доступна!'
                        )
                        self.assertEqual(
                            json.loads(response.content)["message"],
                            u"Данная услуга уже была активирована в текущем месяце.",
                        )

                        self.client.post("/logout")
                        i = i + 1

        print u"Test: <test_enable_internet_on_already_enabled>. Всего договоров: %i, Обработано: %i" % (
            len(self.contracts),
            i,
        )
Esempio n. 7
0
    def test_tv(self):      
        for contract in self.contracts:
            self.client.post('/login', {'contract': contract.contract, 'password': contract.password})
            response = self.client.get('/tv')

            service = Service(contract=contract)

            # Check that the response is 200 OK.
            self.assertEqual(response.status_code, 200)

            title_exist   = True if 'Произошла ошибка!' in response.content else False
            message_exist = True if 'Данная услуга у вас не привязана к данному логину. Предварительно осуществите привязку.' in response.content else False

            if service.is_tv_activated():
                self.assertEqual(title_exist, False)
                self.assertEqual(message_exist, False)
            else:
                self.assertEqual(title_exist, True)
                self.assertEqual(message_exist, True)                

            #logout
            self.client.post('/logout')
Esempio n. 8
0
def worker(req):
    context = {}

    contract = req.params()['service_contract']
    service  = req.params()['service']

    balancesView = BalancesView(contract=contract)

    #баланс
    if balancesView.getSuccess():
        balances = balancesView.get()
        periods  = balancesView.getPeriods()

        context['balances'] = balances
        context['periods']  = periods

    paymentsView = PaymentsView(contract=contract)

    #платежи
    if paymentsView.getSuccess():
        payments = paymentsView.get()
        payment_months = paymentsView.getMonths()

        context['payments']       = payments
        context['payment_months'] = payment_months

    #определяем текущий тариф
    tariff = Tariff(contract=contract)

    context['personal_tariff'] = tariff.is_personal()

    if not tariff.is_personal():
        context['current_internet_tariff'] = tariff.getCurrentTarPlan().tarplan

        #запланирован ли переход на новый тариф
        if tariff.isTarPlanChanging():
            contractTarPlan_planned = tariff.getOpenTarPlan().tarplan
            contractTarPlan_planned.day_start = tariff.getOpenTarPlan().start_date.strftime("%Y-%m-%d")
        else:
            contractTarPlan_planned = None

        context['planned_internet_tariff']  = contractTarPlan_planned

        #получаем список тарифов и сортируем их по цене
        tarplans = TarPlan.objects.filter(id__in=settings.TARPLAN[service].keys())
        tarplans = sorted(tarplans, key=lambda tarplan: tarplan.price)
        context['internet_tariffs'] = tarplans

    #проверяем доступно ли данному абоненту понижение лимита
    limit_down = LimitDown(contract=contract)

    if limit_down.can_make():
        context['can_make_promise_pay']         = True
    else:
        context['can_make_promise_pay']         = False        
        context['promise_pay_disabled_title']   = limit_down.get_trust_pay_not_available_reason()['title']
        context['promise_pay_disabled_message'] = limit_down.get_trust_pay_not_available_reason()['message']

    #получаем даты перехода на новые ТП
    context['start_dates'] = StartDate.get()

    #определяем ссылки на другие услуги
    _service = Service(contract=contract)
    context['show_tv_link']    = _service.is_tv_activated()
    context['show_phone_link'] = _service.is_phone_activated()

    #определяем остальные переменные контекста
    context['fio']             = contract.fio
    context['contract']        = contract.contract
    context['change_passwd']   = False

    return {'success': True, 'template': '%s.html' % service, 'template_context': context}