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}
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)
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 'Услуга "Обещанный платёж" не доступна!' 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')
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}
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')
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, )
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')
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}