test_targetUtils.py (2610B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\parklife\test\test_targetUtils.py 2 from collections import namedtuple 3 from eve.client.script.parklife.targetUtils import get_closest_entity_target 4 from mock import Mock 5 from testhelpers.evemocks import SMMock 6 import unittest 7 from testsuites.testcases import ClientTestCase 8 EntityMock = namedtuple('Entity', 'itemID groupID') 9 MOCK_GROUP_DRIFTER = 1310 10 MOCK_GROUP_SEEKER = 1768 11 MOCK_GROUP_SOMETHING_ELSE = 12345 12 13 class MichelleMock(object): 14 15 def __init__(self): 16 self.ballpark = Mock() 17 self.SetEntitiesInRange(entities=[]) 18 19 def InWarp(self): 20 return False 21 22 def GetBallpark(self): 23 return self.ballpark 24 25 def SetEntitiesInRange(self, entities): 26 self.ballpark.GetItemsAndDistanceByCategory = Mock(return_value=entities) 27 28 29 class TestGetClosestEntityTarget(ClientTestCase): 30 31 def setUp(self): 32 super(TestGetClosestEntityTarget, self).setUp() 33 self.michelle_mock = MichelleMock() 34 import __builtin__ 35 __builtin__.sm = SMMock(services={'michelle': self.michelle_mock}) 36 37 def test_returns_none_if_no_entities_in_range(self): 38 self.assertIsNone(get_closest_entity_target()) 39 40 def test_returns_closest_entity_if_no_priorities_defined(self): 41 self.michelle_mock.SetEntitiesInRange([(2000, EntityMock(1, MOCK_GROUP_DRIFTER)), (1000, EntityMock(2, MOCK_GROUP_SEEKER))]) 42 self.assertEqual(get_closest_entity_target(), 2) 43 44 def test_returns_closest_drifter_if_drifters_prioritized(self): 45 self.michelle_mock.SetEntitiesInRange([(2000, EntityMock(1, MOCK_GROUP_DRIFTER)), (1000, EntityMock(2, MOCK_GROUP_SEEKER))]) 46 target_priority = [MOCK_GROUP_DRIFTER, MOCK_GROUP_SEEKER] 47 self.assertEqual(get_closest_entity_target(target_priority), 1) 48 49 def test_ignores_items_not_listed_in_priorities(self): 50 self.michelle_mock.SetEntitiesInRange([(100, EntityMock(0, MOCK_GROUP_SOMETHING_ELSE)), (2000, EntityMock(1, MOCK_GROUP_DRIFTER)), (1000, EntityMock(2, MOCK_GROUP_SEEKER))]) 51 target_priority = [MOCK_GROUP_DRIFTER, MOCK_GROUP_SEEKER] 52 self.assertEqual(get_closest_entity_target(target_priority), 1) 53 54 def test_ignores_priorities_when_not_found(self): 55 self.michelle_mock.SetEntitiesInRange([(100, EntityMock(0, MOCK_GROUP_SOMETHING_ELSE)), (1000, EntityMock(2, MOCK_GROUP_SEEKER))]) 56 target_priority = [MOCK_GROUP_DRIFTER, MOCK_GROUP_SEEKER] 57 self.assertEqual(get_closest_entity_target(target_priority), 2) 58 59 60 if __name__ == '__main__': 61 unittest.main()