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)
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)
def setUp(self): super(CitizenshipTaskTest, self).setUp() self.o = CitizenshipOrder( player=self.p, corporation=self.c ) self.o.save()
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()
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)
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)
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)