def test_1_process(self): self.assertEqual( PostponedTaskPrototype._model_class.objects.all().count(), 0) self.assertEqual( ChangeCredentialsTaskPrototype._model_class.objects.all().count(), 0) new_password = self.task.process(logger=mock.Mock()) self.assertTrue(self.task.is_processed) self.assertEqual( django_authenticate(nick='test_user', password='******').id, self.account.id) self.assertEqual( PostponedTaskPrototype._model_class.objects.all().count(), 1) self.assertEqual( ChangeCredentialsTaskPrototype._model_class.objects.all().count(), 1) PostponedTaskPrototype._db_get_object(0).process(logger=mock.Mock()) self.assertEqual( django_authenticate(nick='test_user', password='******'), None) self.assertEqual( django_authenticate(nick='test_user', password=new_password).id, self.account.id)
def test_1_process(self): self.assertEqual(PostponedTaskPrototype._model_class.objects.all().count(), 0) self.assertEqual(ChangeCredentialsTaskPrototype._model_class.objects.all().count(), 0) new_password = self.task.process(logger=mock.Mock()) self.assertTrue(self.task.is_processed) self.assertEqual(django_authenticate(nick='test_user', password='******').id, self.account.id) self.assertEqual(PostponedTaskPrototype._model_class.objects.all().count(), 1) self.assertEqual(ChangeCredentialsTaskPrototype._model_class.objects.all().count(), 1) PostponedTaskPrototype._db_get_object(0).process(logger=mock.Mock()) self.assertEqual(django_authenticate(nick='test_user', password='******'), None) self.assertEqual(django_authenticate(nick='test_user', password=new_password).id, self.account.id)
def test_choose_ability_request_ok(self): self.request_login('*****@*****.**') response = self.client.post( reverse('game:heroes:choose-ability', args=[self.hero.id]) + '?ability_id=' + self.get_new_ability_id()) task = PostponedTaskPrototype._db_get_object(0) self.check_ajax_processing(response, task.status_url)
def test_buy(self): self.assertEqual(PostponedTaskPrototype._model_class.objects.all().count(), 0) self.assertEqual(InvoicePrototype._model_class.objects.all().count(), 0) with mock.patch("the_tale.common.postponed_tasks.PostponedTaskPrototype.cmd_wait") as cmd_wait: self.purchase.buy(account=self.account) self.assertEqual(cmd_wait.call_count, 1) self.assertEqual(PostponedTaskPrototype._model_class.objects.all().count(), 1) self.assertEqual(InvoicePrototype._model_class.objects.all().count(), 1) postponed_logic = PostponedTaskPrototype._db_get_object(0).internal_logic self.assertTrue(isinstance(postponed_logic, BuyPremium)) self.assertEqual(postponed_logic.account_id, self.account.id) self.assertEqual(postponed_logic.days, self.days) invoice = InvoicePrototype.get_by_id(postponed_logic.transaction.invoice_id) self.assertEqual(invoice.recipient_type, ENTITY_TYPE.GAME_ACCOUNT) self.assertEqual(invoice.recipient_id, self.account.id) self.assertEqual(invoice.sender_type, ENTITY_TYPE.GAME_LOGIC) self.assertEqual(invoice.sender_id, 0) self.assertEqual(invoice.currency, CURRENCY_TYPE.PREMIUM) self.assertEqual(invoice.amount, -self.cost) self.assertEqual(invoice.description_for_sender, u"premium-days-transaction-description") self.assertEqual(invoice.description_for_recipient, u"premium-days-transaction-description")
def test_fast_profile_confirm_email(self): self.client.post(reverse('accounts:registration:fast')) PostponedTaskPrototype(model=PostponedTask.objects.all()[0]).process( FakeLogger()) self.client.post( reverse('accounts:profile:update'), { 'email': '*****@*****.**', 'nick': 'test_nick', 'password': '******' }) self.assertEqual(Message.objects.all().count(), 1) uuid = ChangeCredentialsTask.objects.all()[0].uuid response = self.client.get( reverse('accounts:profile:confirm-email') + '?uuid=' + uuid) self.check_response_redirect( response, PostponedTaskPrototype._db_get_object(1).wait_url) self.assertEqual(ChangeCredentialsTask.objects.all().count(), 1) self.assertEqual(ChangeCredentialsTask.objects.all()[0].state, relations.CHANGE_CREDENTIALS_TASK_STATE.CHANGING) self.assertEqual( django_authenticate(nick='test_nick', password='******'), None)
def test_profile_update_nick(self): self.request_login(self.account.email) response = self.client.post(reverse('accounts:profile:update'), {'email': self.account.email, 'nick': 'test_nick'}) self.assertEqual(response.status_code, 200) self.check_ajax_processing(response, PostponedTaskPrototype._db_get_object(0).status_url) self.assertEqual(ChangeCredentialsTask.objects.all().count(), 1) self.assertEqual(ChangeCredentialsTask.objects.all()[0].state, relations.CHANGE_CREDENTIALS_TASK_STATE.CHANGING)
def test_success(self): self.assertEqual(PostponedTask.objects.all().count(), 0) response = self.post_ajax_json(url('game:heroes:reset-abilities', self.hero.id)) self.assertEqual(PostponedTask.objects.all().count(), 1) task = PostponedTaskPrototype._db_get_object(0) self.check_ajax_processing(response, task.status_url)
def test_choose_processing(self): self.turn_to_quest(self.storage, self.hero.id) self.request_login('*****@*****.**') response = self.client.post(url('game:quests:api-choose', option_uid=self.option_uid, api_version='1.0', api_client=project_settings.API_CLIENT)) task = PostponedTaskPrototype._db_get_object(0) self.check_ajax_processing(response, task.status_url) self.assertEqual(PostponedTask.objects.all().count(), 1)
def test_profile_confirm_email_for_unlogined(self): self.request_login(self.account.email) self.client.post(reverse('accounts:profile:update'), {'email': '*****@*****.**', 'nick': 'test_nick'}) self.request_logout() uuid = ChangeCredentialsTask.objects.all()[0].uuid response = self.client.get(reverse('accounts:profile:confirm-email')+'?uuid='+uuid) self.check_response_redirect(response, PostponedTaskPrototype._db_get_object(0).wait_url)
def test_profile_confirm_email(self): self.request_login(self.account.email) self.client.post(reverse('accounts:profile:update'), {'email': '*****@*****.**', 'nick': 'test_nick'}) self.assertEqual(PostponedTaskPrototype._model_class.objects.all().count(), 0) uuid = ChangeCredentialsTask.objects.all()[0].uuid response = self.client.get(reverse('accounts:profile:confirm-email')+'?uuid='+uuid) self.check_response_redirect(response, PostponedTaskPrototype._db_get_object(0).wait_url) self.assertEqual(ChangeCredentialsTask.objects.all().count(), 1) self.assertEqual(ChangeCredentialsTask.objects.all()[0].state, relations.CHANGE_CREDENTIALS_TASK_STATE.CHANGING) self.assertEqual(Message.objects.all().count(), 1)
def test_change_hero(self): self.assertEqual(PostponedTask.objects.all().count(), 0) response = self.client.post(url('game:heroes:change-hero', self.hero.id), self.get_post_data()) self.assertEqual(PostponedTask.objects.all().count(), 1) task = PostponedTaskPrototype._db_get_object(0) self.check_ajax_processing(response, task.status_url) self.assertEqual(task.internal_logic.name, names.generator.get_test_name(name=u'новое имя')) self.assertEqual(task.internal_logic.gender, GENDER.MASCULINE) self.assertEqual(task.internal_logic.race, RACE.DWARF)
def test_choose_processing(self): self.turn_to_quest(self.storage, self.hero.id) self.request_login('*****@*****.**') response = self.client.post( url('game:quests:api-choose', option_uid=self.option_uid, api_version='1.0', api_client=project_settings.API_CLIENT)) task = PostponedTaskPrototype._db_get_object(0) self.check_ajax_processing(response, task.status_url) self.assertEqual(PostponedTask.objects.all().count(), 1)
def test_profile_update_nick(self): self.request_login(self.account.email) response = self.client.post(reverse('accounts:profile:update'), { 'email': self.account.email, 'nick': 'test_nick' }) self.assertEqual(response.status_code, 200) self.check_ajax_processing( response, PostponedTaskPrototype._db_get_object(0).status_url) self.assertEqual(ChangeCredentialsTask.objects.all().count(), 1) self.assertEqual(ChangeCredentialsTask.objects.all()[0].state, relations.CHANGE_CREDENTIALS_TASK_STATE.CHANGING)
def test_profile_confirm_email_for_unlogined(self): self.request_login(self.account.email) self.client.post(reverse('accounts:profile:update'), { 'email': '*****@*****.**', 'nick': 'test_nick' }) self.request_logout() uuid = ChangeCredentialsTask.objects.all()[0].uuid response = self.client.get( reverse('accounts:profile:confirm-email') + '?uuid=' + uuid) self.check_response_redirect( response, PostponedTaskPrototype._db_get_object(0).wait_url)
def test_change_hero(self): self.hero._model.name = '111' self.hero.save() self.assertEqual(PostponedTask.objects.all().count(), 0) response = self.client.post(url('game:heroes:reset-name', self.hero.id)) self.assertEqual(PostponedTask.objects.all().count(), 1) task = PostponedTaskPrototype._db_get_object(0) self.check_ajax_processing(response, task.status_url) self.assertNotEqual(task.internal_logic.name, self.hero.name) self.assertEqual(task.internal_logic.gender, self.hero.gender) self.assertEqual(task.internal_logic.race, self.hero.race)
def test_fast_profile_confirm_email(self): self.client.post(reverse('accounts:registration:fast')) PostponedTaskPrototype(model=PostponedTask.objects.all()[0]).process(FakeLogger()) self.client.post(reverse('accounts:profile:update'), {'email': '*****@*****.**', 'nick': 'test_nick', 'password': '******'}) self.assertEqual(Message.objects.all().count(), 1) uuid = ChangeCredentialsTask.objects.all()[0].uuid response = self.client.get(reverse('accounts:profile:confirm-email')+'?uuid='+uuid) self.check_response_redirect(response, PostponedTaskPrototype._db_get_object(1).wait_url) self.assertEqual(ChangeCredentialsTask.objects.all().count(), 1) self.assertEqual(ChangeCredentialsTask.objects.all()[0].state, relations.CHANGE_CREDENTIALS_TASK_STATE.CHANGING) self.assertEqual(django_authenticate(nick='test_nick', password='******'), None)
def test_success(self): old_nick = self.account_1.nick response = self.client.post(reverse('accounts:reset-nick', args=[self.account_1.id])) postponed_task = PostponedTaskPrototype._db_get_object(0) self.check_ajax_processing(response, reverse('postponed-tasks:status', args=[postponed_task.id])) task = ChangeCredentialsTaskPrototype._db_get_object(0) self.assertFalse(task.relogin_required) self.assertEqual(self.account_1.id, task.account.id) self.assertNotEqual(self.account_1.nick, task.new_nick) self.assertEqual(old_nick, AccountPrototype.get_by_id(self.account_1.id).nick)
def test_profile_confirm_email(self): self.request_login(self.account.email) self.client.post(reverse('accounts:profile:update'), { 'email': '*****@*****.**', 'nick': 'test_nick' }) self.assertEqual( PostponedTaskPrototype._model_class.objects.all().count(), 0) uuid = ChangeCredentialsTask.objects.all()[0].uuid response = self.client.get( reverse('accounts:profile:confirm-email') + '?uuid=' + uuid) self.check_response_redirect( response, PostponedTaskPrototype._db_get_object(0).wait_url) self.assertEqual(ChangeCredentialsTask.objects.all().count(), 1) self.assertEqual(ChangeCredentialsTask.objects.all()[0].state, relations.CHANGE_CREDENTIALS_TASK_STATE.CHANGING) self.assertEqual(Message.objects.all().count(), 1)
def test_buy(self): self.assertEqual( PostponedTaskPrototype._model_class.objects.all().count(), 0) self.assertEqual(InvoicePrototype._model_class.objects.all().count(), 0) with mock.patch( 'the_tale.common.postponed_tasks.PostponedTaskPrototype.cmd_wait' ) as cmd_wait: self.purchase.buy(account=self.account) self.assertEqual(cmd_wait.call_count, 1) self.assertEqual( PostponedTaskPrototype._model_class.objects.all().count(), 1) self.assertEqual(InvoicePrototype._model_class.objects.all().count(), 1) postponed_logic = PostponedTaskPrototype._db_get_object( 0).internal_logic self.assertTrue(isinstance(postponed_logic, BuyPremium)) self.assertEqual(postponed_logic.account_id, self.account.id) self.assertEqual(postponed_logic.days, self.days) invoice = InvoicePrototype.get_by_id( postponed_logic.transaction.invoice_id) self.assertEqual(invoice.recipient_type, ENTITY_TYPE.GAME_ACCOUNT) self.assertEqual(invoice.recipient_id, self.account.id) self.assertEqual(invoice.sender_type, ENTITY_TYPE.GAME_LOGIC) self.assertEqual(invoice.sender_id, 0) self.assertEqual(invoice.currency, CURRENCY_TYPE.PREMIUM) self.assertEqual(invoice.amount, -self.cost) self.assertEqual(invoice.description_for_sender, u'premium-days-transaction-description') self.assertEqual(invoice.description_for_recipient, u'premium-days-transaction-description')
def test_success(self): response = self.client.post(url('shop:buy', purchase=self.purchase.uid)) self.check_ajax_processing( response, PostponedTaskPrototype._db_get_object(0).status_url)
def test_activate_ability(self): self.request_login('*****@*****.**') response = self.client.post(use_ability_url(ABILITY_TYPE.HELP)) task = PostponedTaskPrototype._db_get_object(0) self.check_ajax_processing(response, task.status_url)
def test_success(self): response = self.client.post(url('shop:buy', purchase=self.purchase.uid)) self.check_ajax_processing(response, PostponedTaskPrototype._db_get_object(0).status_url)
def test_choose_ability_request_ok(self): self.request_login('*****@*****.**') response = self.client.post(reverse('game:heroes:choose-ability', args=[self.hero.id]) + '?ability_id=' + self.get_new_ability_id()) task = PostponedTaskPrototype._db_get_object(0) self.check_ajax_processing(response, task.status_url)
def test_success(self): self.pvp_create_battle(self.account_1, self.account_2, BATTLE_1X1_STATE.PROCESSING) response = self.client.post(reverse('game:pvp:say'), {'text': u'some text'}) task = PostponedTaskPrototype._db_get_object(0) self.check_ajax_processing(response, task.status_url)
def test_success(self): self.pvp_create_battle(self.account_1, self.account_2, BATTLE_1X1_STATE.PROCESSING) response = self.client.post(self.change_style_url) task = PostponedTaskPrototype._db_get_object(0) self.check_ajax_processing(response, task.status_url)