NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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()