예제 #1
0
파일: unit.py 프로젝트: Neamar/kingdoms
	def test_recurring_code(self):
		"""
		Test recurring condition code.
		"""

		r = Recurring(
			on_fire="""
status = "foo"
kingdom.money = 15
kingdom.save()
"""
		)
		r.save()

		status = r.fire(self.k)
		self.assertEqual(status, "foo")
		self.assertEqual(Kingdom.objects.get(pk=self.k.pk).money, 15)
예제 #2
0
파일: unit.py 프로젝트: Neamar/kingdoms
	def test_recurring_kingdoms(self):
		"""
		Test recurring returns a list of kingdoms on which to run
		"""

		r = Recurring(
			kingdom_list="""
param = Kingdom.objects.filter(prestige__lte=50)
"""
		)
		r.save()

		kingdoms = r.kingdoms()
		self.assertEqual(len(kingdoms), 1)

		self.k.prestige = 500
		self.k.save()
		kingdoms = r.kingdoms()
		self.assertEqual(len(kingdoms), 0)
예제 #3
0
파일: unit.py 프로젝트: Neamar/kingdoms
	def test_recurring_cron(self):
		"""
		Test recurring runs within the cron signal
		"""

		r = Recurring(
			delay=10,
			on_fire="""
kingdom.money = 500
kingdom.save()
"""
		)
		r.save()

		# Sanity check
		self.assertEqual(Kingdom.objects.get(pk=self.k.pk).money, 0)

		cron_ten_minutes.send(self, counter=5)
		self.assertEqual(Kingdom.objects.get(pk=self.k.pk).money, 0)

		cron_ten_minutes.send(self, counter=10)
		self.assertEqual(Kingdom.objects.get(pk=self.k.pk).money, 500)