本文整理汇总了Python中wouso.games.challenge.models.Challenge.create方法的典型用法代码示例。如果您正苦于以下问题:Python Challenge.create方法的具体用法?Python Challenge.create怎么用?Python Challenge.create使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wouso.games.challenge.models.Challenge
的用法示例。
在下文中一共展示了Challenge.create方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_challenge_index
# 需要导入模块: from wouso.games.challenge.models import Challenge [as 别名]
# 或者: from wouso.games.challenge.models.Challenge import create [as 别名]
def test_challenge_index(self):
Challenge.create(user_from=self.ch_player2, user_to=self.ch_player1,
ignore_questions=True)
response = self.c.get(reverse('challenge_index_view'))
# Test if both challenges are displayed
self.assertContains(response, 'testuser1</a> vs')
self.assertContains(response, 'testuser2</a> vs')
示例2: test_weakness
# 需要导入模块: from wouso.games.challenge.models import Challenge [as 别名]
# 或者: from wouso.games.challenge.models.Challenge import create [as 别名]
def test_weakness(self):
"""
Test for weakness
"""
initial_points = 10
player = self._get_player()
player2 = self._get_player(2)
chall_user = player.get_extension(ChallengeUser)
scoring.setup_scoring()
Coin.add('points')
scoring.score_simple(chall_user, 'points', initial_points)
self.assertEqual(player.points, initial_points)
# Points won before Weakness is applied
chall = Challenge.create(user_from=chall_user, user_to=player2, ignore_questions=True)
chall.set_won_by_player(chall_user)
points_no_weakness = player.points
# Applying Weakness
weakness = Spell.objects.create(name='challenge-affect-scoring', available=True, price=10, percents=-66, type='n')
obs = PlayerSpellDue.objects.create(player=chall_user, source=chall_user, spell=weakness, due=datetime.now() + timedelta(days=1))
self.assertTrue(chall_user.magic.has_modifier('challenge-affect-scoring'))
player.points = initial_points
chall = Challenge.create(user_from=chall_user, user_to=player2, ignore_questions=True)
chall.set_won_by_player(chall_user)
# Player should win 66% less points with weakness applied
self.assertEqual(player.points, points_no_weakness - 0.66 * (points_no_weakness - initial_points))
示例3: test_charge
# 需要导入模块: from wouso.games.challenge.models import Challenge [as 别名]
# 或者: from wouso.games.challenge.models.Challenge import create [as 别名]
def test_charge(self):
"""
Test for Charge spell
"""
initial_points = 10
player = self._get_player()
player2 = self._get_player(2)
chall_user = player.get_extension(ChallengeUser)
scoring.setup_scoring()
Coin.add('points')
scoring.score_simple(chall_user, 'points', initial_points)
self.assertEqual(player.points, initial_points)
# Points won before Charge is applied
chall = Challenge.create(user_from=chall_user, user_to=player2, ignore_questions=True)
chall.set_won_by_player(chall_user)
points_no_charge = player.points
# Apply Charge
charge = Spell.objects.create(name='challenge-affect-scoring', available=True, price=10, percents=33, type='p')
obs = PlayerSpellDue.objects.create(player=chall_user, source=chall_user, spell=charge, due=datetime.now() + timedelta(days=1))
self.assertTrue(chall_user.magic.has_modifier('challenge-affect-scoring'))
player.points = initial_points
chall = Challenge.create(user_from=chall_user, user_to=player2, ignore_questions=True)
chall.set_won_by_player(chall_user)
# Player should have 33% more points with charge applied
self.assertEqual(player.points, points_no_charge + 0.33 * (points_no_charge - initial_points))
示例4: testLaunch
# 需要导入模块: from wouso.games.challenge.models import Challenge [as 别名]
# 或者: from wouso.games.challenge.models.Challenge import create [as 别名]
def testLaunch(self):
chall = Challenge.create(user_from=self.chall_user, user_to=self.chall_user2, ignore_questions=True)
self.assertTrue(isinstance(chall, Challenge))
self.assertTrue(chall.is_launched())
chall.refuse()
self.assertTrue(chall.is_refused())
chall.delete()
chall = Challenge.create(user_from=self.chall_user, user_to=self.chall_user2, ignore_questions=True)
chall.accept()
self.assertTrue(chall.is_runnable())
self.assertFalse(chall.is_refused())
chall.delete()
示例5: test_weakness_and_charge
# 需要导入模块: from wouso.games.challenge.models import Challenge [as 别名]
# 或者: from wouso.games.challenge.models.Challenge import create [as 别名]
def test_weakness_and_charge(self):
"""
If both Weakness and Charge are active, a player should win weakness.percents + charge.percents less/more points
after winning a challenge
"""
initial_points = 100
win_points = 10
player = self._get_player(1).get_extension(ChallengeUser)
player_dummy = self._get_player(2).get_extension(ChallengeUser)
scoring.setup_scoring()
Coin.add('points')
scoring.score_simple(player, 'points', initial_points)
formula = Formula.get('chall-won')
formula.expression = 'points=' + str(win_points)
formula.save()
# Apply charge
charge = Spell.objects.create(name='challenge-affect-scoring-won', available=True, price=10, percents=33, type='p')
obs = PlayerSpellDue.objects.create(player=player, source=player, spell=charge, due=datetime.now() + timedelta(days=1))
# Apply weakness
weakness = Spell.objects.create(name='challenge-affect-scoring-won', available=True, price=10, percents=-66, type='p')
obs = PlayerSpellDue.objects.create(player=player, source=player, spell=weakness, due=datetime.now() + timedelta(days=1))
chall = Challenge.create(user_from=player, user_to=player_dummy, ignore_questions=True)
chall.set_won_by_player(player)
percents = (charge.percents + weakness.percents) / 100.0
target_points = initial_points + win_points + percents * win_points
self.assertEqual(player.player_ptr.points, target_points)
示例6: test_post_challenge
# 需要导入模块: from wouso.games.challenge.models import Challenge [as 别名]
# 或者: from wouso.games.challenge.models.Challenge import create [as 别名]
def test_post_challenge(self):
# create an active challenge, with fake questions
Formula.objects.create(id='chall-warranty')
category = Category.objects.create(name='challenge')
for i in range(5):
q = Question.objects.create(text='text %s' % i, category=category, active=True)
for j in range(5):
Answer.objects.create(correct=j==1, question=q)
chall = Challenge.create(user_from=self.challuser2, user_to=self.challuser)
chall.accept()
response = self.client.get('/api/challenge/{id}/'.format(id=chall.id))
data = json.loads(response.content)
self.assertTrue(data)
self.assertEqual(data['status'], 'A')
self.assertEqual(data['to'], self.challuser.user.username)
self.assertEqual(len(data['questions']), 5)
# attempt post
data = {}
for q in Question.objects.all():
answers = []
for a in q.correct_answers:
answers.append(str(a.id))
data[q.id] = ','.join(answers)
response = self.client.post('/api/challenge/{id}/'.format(id=chall.id), data)
self.assertEqual(response.status_code, 200)
data = json.loads(response.content)
self.assertTrue(data['success'])
self.assertEqual(data['result']['points'], 500)
示例7: test_frenzy_loss
# 需要导入模块: from wouso.games.challenge.models import Challenge [as 别名]
# 或者: from wouso.games.challenge.models.Challenge import create [as 别名]
def test_frenzy_loss(self):
"""
If user loses while affected by frenzy he should lose frenzy.percents more points
"""
initial_points = 100
loss_points = -10
warranty_points = -3
player_frenzy = self._get_player(1).get_extension(ChallengeUser)
player_dummy = self._get_player(2).get_extension(ChallengeUser)
scoring.setup_scoring()
Coin.add('points')
scoring.score_simple(player_frenzy, 'points', initial_points)
formula = Formula.get('chall-lost')
formula.expression = 'points=' + str(loss_points)
formula.save()
formula = Formula.get('chall-warranty')
formula.expression = 'points=' + str(warranty_points)
formula.save()
# Apply frenzy
frenzy = Spell.objects.create(name='challenge-affect-scoring', available=True, price=25, percents=66, type='o')
obs = PlayerSpellDue.objects.create(player=player_frenzy, source=player_frenzy, spell=frenzy, due=datetime.now() + timedelta(days=1))
# Win challenge with dummy player to see the amount of points lost by the player affected with frenzy
chall = Challenge.create(user_from=player_frenzy, user_to=player_dummy, ignore_questions=True)
chall.set_won_by_player(player_dummy)
# Player should lose frenzy.percents more points with frenzy applied
target_points = initial_points + loss_points + frenzy.percents / 100.0 * loss_points + warranty_points
self.assertEqual(player_frenzy.player_ptr.points, target_points)
示例8: setUp
# 需要导入模块: from wouso.games.challenge.models import Challenge [as 别名]
# 或者: from wouso.games.challenge.models.Challenge import create [as 别名]
def setUp(self):
user_from = self._get_player(1)
user_to = self._get_player(2)
chall_user1 = user_from.get_extension(ChallengeUser)
chall_user2 = user_to.get_extension(ChallengeUser)
scoring.setup_scoring()
self.chall = Challenge.create(user_from=chall_user1, user_to=chall_user2, ignore_questions=True)
示例9: test_charge
# 需要导入模块: from wouso.games.challenge.models import Challenge [as 别名]
# 或者: from wouso.games.challenge.models.Challenge import create [as 别名]
def test_charge(self):
"""
Test for Charge spell
"""
initial_points = 100
win_points = 10
player_charge = self._get_player(1).get_extension(ChallengeUser)
player_dummy = self._get_player(2).get_extension(ChallengeUser)
scoring.setup_scoring()
Coin.add('points')
scoring.score_simple(player_charge, 'points', initial_points)
formula = Formula.get('chall-won')
formula.expression = 'points=' + str(win_points)
formula.save()
# Apply charge
charge = Spell.objects.create(name='challenge-affect-scoring-won', available=True, price=10, percents=33, type='p')
obs = PlayerSpellDue.objects.create(player=player_charge, source=player_charge, spell=charge, due=datetime.now() + timedelta(days=1))
chall = Challenge.create(user_from=player_charge, user_to=player_dummy, ignore_questions=True)
chall.set_won_by_player(player_charge)
# Player should win weakness.percents more points with charge applied
target_points = initial_points + win_points + charge.percents / 100.0 * win_points
self.assertEqual(player_charge.player_ptr.points, target_points)
示例10: setUp
# 需要导入模块: from wouso.games.challenge.models import Challenge [as 别名]
# 或者: from wouso.games.challenge.models.Challenge import create [as 别名]
def setUp(self):
super(TestChallengeViews, self).setUp()
self.ch_player1 = self._get_player(1)
self.ch_player2 = self._get_player(2)
race = Race.objects.create(name=u'testrace', can_play=True)
self.ch_player1.race = race
self.ch_player2.race = race
self.ch_player1.points = 100
self.ch_player2.points = 100
self.ch_player1.save()
self.ch_player2.save()
self.ch_player1 = self.ch_player1.get_extension(ChallengeUser)
self.ch_player2 = self.ch_player2.get_extension(ChallengeUser)
scoring.setup_scoring()
self.category = Category.add('challenge')
self.question1 = Question.objects.create(text='question1', answer_type='F',
category=self.category, active=True)
self.answer1 = Answer.objects.create(text='first answer', correct=True,
question=self.question1)
self.question2 = Question.objects.create(text='question2', answer_type='F',
category=self.category, active=True)
self.answer2 = Answer.objects.create(text='second answer', correct=True,
question=self.question2)
self.ch = Challenge.create(user_from=self.ch_player1, user_to=self.ch_player2,
ignore_questions=True)
self.ch.questions.add(self.question1)
self.ch.questions.add(self.question2)
self.c = Client()
self.c.login(username='testuser1', password='test')
示例11: test_run_is_started
# 需要导入模块: from wouso.games.challenge.models import Challenge [as 别名]
# 或者: from wouso.games.challenge.models.Challenge import create [as 别名]
def test_run_is_started(self):
chall = Challenge.create(user_from=self.chall_user, user_to=self.chall_user2, ignore_questions=True)
chall.accept()
chall.set_start(self.chall_user)
self.assertTrue(chall.is_started_for_user(self.chall_user))
self.assertFalse(chall.is_started_for_user(self.chall_user2))
示例12: setUp
# 需要导入模块: from wouso.games.challenge.models import Challenge [as 别名]
# 或者: from wouso.games.challenge.models.Challenge import create [as 别名]
def setUp(self):
super(FlawlessVictoryTest, self).setUp()
self.user_from = self._get_player(1)
self.user_to = self._get_player(2)
self.chall_user1 = self.user_from.get_extension(ChallengeUser)
self.chall_user2 = self.user_to.get_extension(ChallengeUser)
scoring.setup_scoring()
self.chall = Challenge.create(user_from=self.chall_user1, user_to=self.chall_user2, ignore_questions=True)
示例13: create
# 需要导入模块: from wouso.games.challenge.models import Challenge [as 别名]
# 或者: from wouso.games.challenge.models.Challenge import create [as 别名]
def create(cls, user_from, user_to, round):
""" Create a new Challenge and automatically accept it.
"""
grand_challenge = cls.objects.create(round=round)
user_from = user_from.user.get_profile()
user_to = user_to.user.get_profile()
grand_challenge.challenge = Challenge.create(user_from.get_extension(ChallengeUser), user_to.get_extension(ChallengeUser))
grand_challenge.challenge.accept()
grand_challenge.save()
return grand_challenge
示例14: test_get_challenge
# 需要导入模块: from wouso.games.challenge.models import Challenge [as 别名]
# 或者: from wouso.games.challenge.models.Challenge import create [as 别名]
def test_get_challenge(self):
# create an active challenge
Formula.objects.create(id='chall-warranty')
chall = Challenge.create(user_from=self.challuser2, user_to=self.challuser, ignore_questions=True)
chall.accept()
response = self.client.get('/api/challenge/{id}/'.format(id=chall.id))
data = json.loads(response.content)
self.assertTrue(data)
self.assertEqual(data['status'], 'A')
self.assertEqual(data['to'], self.challuser.user.username)
示例15: test_evade
# 需要导入模块: from wouso.games.challenge.models import Challenge [as 别名]
# 或者: from wouso.games.challenge.models.Challenge import create [as 别名]
def test_evade(self):
"""
Test for Evade spell
"""
player = self._get_player()
player2 = self._get_player(2)
initial_points = 10
scoring.setup_scoring()
Coin.add('points')
scoring.score_simple(player, 'points', initial_points)
self.assertEqual(player.points, initial_points)
# Create and apply evade
evade = Spell.objects.create(name='challenge-evade', available=True, price=25, percents=100, type='p')
obs = PlayerSpellDue.objects.create(player=player, source=player, spell=evade, due=datetime.now() + timedelta(days=1))
self.assertTrue(player.magic.has_modifier('challenge-evade'))
# Get 'chall-lost' expression. By default you still win 2 points when losing a challenge
formulas = ChallengeGame.get_formulas()
exp = formulas[1]['expression'] # this will be 'points=XX'
index = exp.find('=') + 1 # get position of '='
points = int(exp[index:]) # get XX (nr of points won when losing challenge)
# Create challenge and make first player lose it
chall = Challenge.create(user_from=player2, user_to=player, ignore_questions=True)
chall.set_won_by_player(player2)
# If evade spell worked losing player should have initial_points + 'chall-lost' points
# Evade has 20% chance of activation so play challenge in loop while it activates
while player.points != initial_points + points:
player.points = initial_points
chall.set_expired()
chall = Challenge.create(user_from=player2, user_to=player, ignore_questions=True)
chall.set_won_by_player(player2)
# Check if final score is ok
self.assertEqual(player.points, initial_points + points)