예제 #1
0
class CitizenshipTaskTest(EngineTestCase):
	def setUp(self):
		super(CitizenshipTaskTest, self).setUp()

		self.o = CitizenshipOrder(
			player=self.p,
			corporation=self.c
		)
		self.o.save()

	def test_tasks_applied(self):
		"""
		The new player should have a citizenship in the new corporation
		"""
		self.g.resolve_current_turn()
		self.assertEqual(self.reload(self.p).citizenship.corporation, self.c)
예제 #2
0
	def test_get_citizenship_first_time_does_not_create_remove_citizenship_event(self):
		"""
		When you get citizenship for the first time, you should only fire the event of add_citizenship
		"""

		# create the function that will catch the signal
		@receiver(game_event)
		def catch_game_event(sender, instance, event_type, **kwargs):
			if event_type == 'ADD_CITIZENSHIP':
				self.g.add_citizenship_was_called = True
			elif event_type == 'REMOVE_CITIZENSHIP':
				raise Exception("Should not happen")

		# Change citizenship
		self.o = CitizenshipOrder(
			player=self.p,
			corporation=self.c
		)
		self.o.clean()
		self.o.save()

		self.g.resolve_current_turn()

		self.assertTrue(self.g.add_citizenship_was_called)

		# disconnect receiver
		game_event.disconnect(catch_game_event)
예제 #3
0
	def setUp(self):
		super(CitizenshipTaskTest, self).setUp()

		self.o = CitizenshipOrder(
			player=self.p,
			corporation=self.c
		)
		self.o.save()
예제 #4
0
	def setUp(self):
		super(OrdersTest, self).setUp()

		self.s = Share(
			player=self.p,
			corporation=self.c
		)
		self.s.save()

		self.o = CitizenshipOrder(
			player=self.p,
			corporation=self.c
		)
		self.o.clean()
		self.o.save()
예제 #5
0
class OrdersTest(EngineTestCase):
	def setUp(self):
		super(OrdersTest, self).setUp()

		self.s = Share(
			player=self.p,
			corporation=self.c
		)
		self.s.save()

		self.o = CitizenshipOrder(
			player=self.p,
			corporation=self.c
		)
		self.o.clean()
		self.o.save()

	def test_citizenship_is_affected(self):
		"""
		Check if the citizenship is created
		"""
		self.g.resolve_current_turn()

		self.assertEqual(self.reload(self.p).citizenship.corporation, self.c)
예제 #6
0
	def test_get_citizenship_second_time_create_remove_citizenship_event(self):
		"""
		When you already have a citizenship and you change it, two events must be triggered
		"""
		# New turn because you can't change your citizenship twice in same turn
		self.g.resolve_current_turn()

		# create the function that will catch the signal
		@receiver(game_event)
		def catch_game_event(sender, instance, event_type, **kwargs):
			if event_type == 'ADD_CITIZENSHIP':
				self.g.add_citizenship_was_called = True
			elif event_type == 'REMOVE_CITIZENSHIP':
				self.g.remove_citizenship_was_called = True

		# Buy a share to have the new nationality
		self.s = Share(
			player=self.p,
			corporation=self.c2
		)
		self.s.save()

		# Change citizenship
		self.o = CitizenshipOrder(
			player=self.p,
			corporation=self.c2
		)
		self.o.clean()
		self.o.save()

		self.g.resolve_current_turn()

		self.assertTrue(self.g.add_citizenship_was_called)
		self.assertTrue(self.g.remove_citizenship_was_called)

		# disconnect receiver
		game_event.disconnect(catch_game_event)
예제 #7
0
class SignalsTest(EngineTestCase):
	def setUp(self):

		super(SignalsTest, self).setUp()

		self.s = Share(
			player=self.p,
			corporation=self.c
		)
		self.s.save()

		self.o = CitizenshipOrder(
			player=self.p,
			corporation=self.c
		)
		self.o.clean()
		self.o.save()

	def test_cant_create_order_twice(self):
		"""
		Order can't be created twice
		"""
		o2 = CitizenshipOrder(
			player=self.p,
			corporation=self.c
		)

		self.assertRaises(ValidationError, o2.clean)

	def test_cant_get_citizenship_without_share(self):
		"""
		You need at least one share to get citizenship
		"""
		self.s.delete()
		self.o.delete()
		self.assertRaises(ValidationError, self.o.clean)

	def test_get_citizenship_second_time_create_remove_citizenship_event(self):
		"""
		When you already have a citizenship and you change it, two events must be triggered
		"""
		# New turn because you can't change your citizenship twice in same turn
		self.g.resolve_current_turn()

		# create the function that will catch the signal
		@receiver(game_event)
		def catch_game_event(sender, instance, event_type, **kwargs):
			if event_type == 'ADD_CITIZENSHIP':
				self.g.add_citizenship_was_called = True
			elif event_type == 'REMOVE_CITIZENSHIP':
				self.g.remove_citizenship_was_called = True

		# Buy a share to have the new nationality
		self.s = Share(
			player=self.p,
			corporation=self.c2
		)
		self.s.save()

		# Change citizenship
		self.o = CitizenshipOrder(
			player=self.p,
			corporation=self.c2
		)
		self.o.clean()
		self.o.save()

		self.g.resolve_current_turn()

		self.assertTrue(self.g.add_citizenship_was_called)
		self.assertTrue(self.g.remove_citizenship_was_called)

		# disconnect receiver
		game_event.disconnect(catch_game_event)