本文整理汇总了Python中wouso.core.scoring.models.Formula.add方法的典型用法代码示例。如果您正苦于以下问题:Python Formula.add方法的具体用法?Python Formula.add怎么用?Python Formula.add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wouso.core.scoring.models.Formula
的用法示例。
在下文中一共展示了Formula.add方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_post_challenge
# 需要导入模块: from wouso.core.scoring.models import Formula [as 别名]
# 或者: from wouso.core.scoring.models.Formula import add [as 别名]
def test_post_challenge(self):
# create an active challenge, with fake questions
Formula.add('chall-warranty')
Formula.add('chall-timer')
category = Category.add('challenge')
for i in range(Challenge.LIMIT + 1):
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']), Challenge.LIMIT)
# 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'], Challenge.LIMIT * 100)
示例2: test_get_challenge
# 需要导入模块: from wouso.core.scoring.models import Formula [as 别名]
# 或者: from wouso.core.scoring.models.Formula import add [as 别名]
def test_get_challenge(self):
# create an active challenge
Formula.add('chall-warranty')
Formula.add('chall-timer')
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)
示例3: test_list_active
# 需要导入模块: from wouso.core.scoring.models import Formula [as 别名]
# 或者: from wouso.core.scoring.models.Formula import add [as 别名]
def test_list_active(self):
response = self.client.get('/api/challenge/list/')
self.assertEqual(response.status_code, 200)
data = json.loads(response.content)
self.assertFalse(data)
# create an active challenge
Formula.add('chall-warranty')
chall = Challenge.create(user_from=self.challuser2, user_to=self.challuser, ignore_questions=True)
response = self.client.get('/api/challenge/list/')
data = json.loads(response.content)
self.assertTrue(data)
data = data[0]
self.assertEqual(data['id'], chall.id)
示例4: test_buy_spell
# 需要导入模块: from wouso.core.scoring.models import Formula [as 别名]
# 或者: from wouso.core.scoring.models.Formula import add [as 别名]
def test_buy_spell(self):
Coin.add('gold')
Formula.add('buy-spell', expression="gold=-{price}")
spell = Spell.objects.create(name='test-spell', available=True, price=10)
player = User.objects.create_user('test', '[email protected]ro', password='test').get_profile()
scoring.score_simple(player, 'gold', 100)
self.assertEqual(player.coins['gold'], 100)
response = self.client.get(reverse('bazaar_home'))
self.assertTrue('test-spell' in response.content)
self.client.login(username='test', password='test')
response = self.client.get(reverse('bazaar_buy', kwargs={'spell': spell.id}))
self.assertFalse('error' in response.content)
player = Player.objects.get(user__username='test')
self.assertEqual(player.coins['gold'], 90)
示例5: setup
# 需要导入模块: from wouso.core.scoring.models import Formula [as 别名]
# 或者: from wouso.core.scoring.models.Formula import add [as 别名]
def setup():
""" Prepare database for Scoring """
for cc in CORE_POINTS:
if not Coin.get(cc):
Coin.add(cc, name=cc)
# special case, gold is integer
gold = Coin.get('gold')
gold.integer = True
gold.save()
# iterate through games and register formulas
for game in get_games():
for formula in game.get_formulas():
if not Formula.get(formula.id):
Formula.add(formula)
# add wouso formulas
for formula in God.get_system_formulas():
if not Formula.get(formula.id):
Formula.add(formula)
示例6: test_buy_spell
# 需要导入模块: from wouso.core.scoring.models import Formula [as 别名]
# 或者: from wouso.core.scoring.models.Formula import add [as 别名]
def test_buy_spell(self):
Coin.add("gold")
Formula.add("buy-spell", definition="gold=-{price}")
spell = Spell.objects.create(name="test-spell", available=True, price=10)
player = User.objects.create_user("test", "[email protected]", password="test").get_profile()
scoring.score_simple(player, "gold", 100)
self.assertEqual(player.coins["gold"], 100)
# TODO: interface test should not be here
response = self.client.get(reverse("bazaar_home"))
self.assertTrue("test-spell" in response.content)
self.client.login(username="test", password="test")
response = self.client.get(reverse("bazaar_buy", kwargs={"spell": spell.id}))
self.assertFalse("error" in response.content)
player = Player.objects.get(user__username="test")
self.assertEqual(player.coins["gold"], 90)
示例7: test_variable_timer
# 需要导入模块: from wouso.core.scoring.models import Formula [as 别名]
# 或者: from wouso.core.scoring.models.Formula import add [as 别名]
def test_variable_timer(self):
formula = Formula.add('chall-timer')
formula.expression = 'tlimit=10'
formula.save()
self.assertEqual(scoring.timer(self.chall_user, ChallengeGame, 'chall-timer', level=self.chall_user.level_no), 10)
formula.expression = 'tlimit={level}'
formula.save()
self.assertEqual(scoring.timer(self.chall_user, ChallengeGame, 'chall-timer', level=self.chall_user.level_no), self.chall_user.level_no)
示例8: test_paralyze
# 需要导入模块: from wouso.core.scoring.models import Formula [as 别名]
# 或者: from wouso.core.scoring.models.Formula import add [as 别名]
def test_paralyze(self):
"""
Test if Paralyze spell works
"""
Formula.add('chall-warranty')
player = self._get_player()
chall_user = player.get_extension(ChallengeUser)
# Check if player can launch before spell is cast
self.assertTrue(chall_user.can_launch())
# Create and add spell to user
paralyze = Spell.objects.create(name='challenge-cannot-challenge', available=True, price=10, percents=100, type='n')
obs = PlayerSpellDue.objects.create(player=chall_user, source=chall_user, spell=paralyze, due=datetime.now() + timedelta(days=1))
# Check if player has the modifier
self.assertTrue(chall_user.magic.has_modifier('challenge-cannot-challenge'))
# Player should not be able to launch challenge with Paralyze on
self.assertFalse(chall_user.can_launch())
示例9: test_first_login_points
# 需要导入模块: from wouso.core.scoring.models import Formula [as 别名]
# 或者: from wouso.core.scoring.models.Formula import add [as 别名]
def test_first_login_points(self):
f = Formula.add('start-points', formula='points=10')
Coin.add('points')
player = self._get_player()
self.assertEqual(player.points, 0)
# this won't work, since the activity is sent in our custom view
#self.client.login(username=player.user.username, password='test')
# using this instead
signals.addActivity.send(sender=None, user_from=player, action="login", game = None, public=False)
player = Player.objects.get(pk=player.pk)
self.assertEqual(player.points, 10)
示例10: test_bazaar_buy_ok
# 需要导入模块: from wouso.core.scoring.models import Formula [as 别名]
# 或者: from wouso.core.scoring.models.Formula import add [as 别名]
def test_bazaar_buy_ok(self):
spell = Spell.objects.create(price=0)
f = Formula.add('buy-spell')
f.expression = 'points=0'
f.save()
Coin.add('points')
response = self.client.post('/api/bazaar/buy/', {'spell': spell.id})
self.assertEqual(response.status_code, 200)
data = json.loads(response.content)
self.assertTrue(data)
self.assertTrue(data['success'])
player = self.user.get_profile()
self.assertTrue(spell in [s.spell for s in player.magic.spells_available])