本文整理汇总了Python中common.utilities.inversion_of_control.Dependency.__getattribute__方法的典型用法代码示例。如果您正苦于以下问题:Python Dependency.__getattribute__方法的具体用法?Python Dependency.__getattribute__怎么用?Python Dependency.__getattribute__使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类common.utilities.inversion_of_control.Dependency
的用法示例。
在下文中一共展示了Dependency.__getattribute__方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: SpotInstanceCheckTests
# 需要导入模块: from common.utilities.inversion_of_control import Dependency [as 别名]
# 或者: from common.utilities.inversion_of_control.Dependency import __getattribute__ [as 别名]
class SpotInstanceCheckTests(unittest.TestCase):
def setUp(self):
# set up mocks
register_mock_dependencies()
self.cloud_provider = Dependency("CloudProvider").value
self.file_provider = Dependency("FileProvider").value
self.email_provider = Dependency("EmailProvider").value
# logger
logger = Dependency("SimpleConsole").value
# set up mongo deployer
self.spot_checker = SpotInstanceChecker(logger)
self.spot_checker.request_headers = [('id', 'idy'), ('chicken', 'SuperChicken'), ('danger', 'WhoKilledKenny')]
self.spot_checker.launch_spec_headers = [('rocket', 'RocketMan')]
self.spot_checker.status_headers = [('code', "StatusCode")]
self.spot_checker.headers = list(itertools.chain(*[['*', 'Instance Tag'],
[h[1] for h in self.spot_checker.request_headers],
[h[1] for h in self.spot_checker.launch_spec_headers],
[h[1] for h in self.spot_checker.status_headers]]))
def tearDown(self):
# remove dependencies for next set of tests
dependencies.clear()
def test_check_spot_instances(self):
# expected perfect match
retrieved_spot_instances = [PretendSpotInstanceObject("id1"), PretendSpotInstanceObject("id2")]
self.cloud_provider.current_spot_instances = retrieved_spot_instances
# expected (from file record)
self.file_provider.file_lines = {'id1': {'chicken': 'woot', 'id': 'id1', 'danger': 'zone', 'launch_specification':{'rocket':'go'}, 'status':{'code':'bar'}},
'id2': {'chicken': 'woot', 'id': 'id2', 'danger': 'zone', 'launch_specification':{'rocket':'go'}, 'status':{'code':'bar'}}}
# go
self.spot_checker.do_comparison()
self.assertEqual(self.spot_checker.current, self.spot_checker.recorded)
self.assertFalse(hasattr(self.spot_checker.current["id1"]["status"], "update_time"))
self.assertFalse(hasattr(self.spot_checker.current["id2"]["status"], "update_time"))
self.assertFalse(hasattr(self.spot_checker, 'diff'))
# File provider assertions
self.assertIn(self.spot_checker.current_file_path, self.file_provider.files.keys())
self.assertEqual([self.spot_checker.current_file_path], self.file_provider.deleted_files)
# Email provider assertions - EVERYTHING should be None
for attr in self.email_provider.__dict__.keys():
self.assertIsNone(self.email_provider.__getattribute__(attr))
def test_check_spot_one_missing(self):
expected_diff = {'*': '-', 'RocketMan': 'fuel', 'SuperChicken': 'parrot', 'WhoKilledKenny': 'manger', 'idy': 'id2', 'StatusCode': 'bar'}
retrieved_spot_instances = [PretendSpotInstanceObject("id1")]
self.cloud_provider.current_spot_instances = retrieved_spot_instances
# expected (from file record)
self.file_provider.file_lines = {'id1': {'chicken': 'woot', 'id': 'id1', 'danger': 'zone', 'launch_specification':{'rocket':'go'}, 'status':{'code':'bar'}},
'id2': {'chicken': 'parrot', 'id': 'id2', 'danger': 'manger', 'launch_specification':{'rocket':'fuel'}, 'status':{'code':'bar'}}}
# go
self.spot_checker.do_comparison()
self.assertEqual(self.spot_checker.current["id1"], self.spot_checker.recorded["id1"])
self.assertFalse(hasattr(self.spot_checker.current, "id2"))
self.assertEqual(self.spot_checker.changes, {'removed': ['id2'], 'modified': [], 'added': []})
self.assertDictEqual(self.spot_checker.diff[0], expected_diff)
# File provider assertions
self.assertEqual([self.spot_checker.recorded_file_path], self.file_provider.deleted_files)
self.assertEqual([(self.spot_checker.current_file_path, self.spot_checker.recorded_file_path)], self.file_provider.moved_files)
# Email provider assertions
self.assertEqual(self.email_provider.html_from_email, '[email protected]')
self.assertEqual(self.email_provider.html_subject, 'Spot Instance Monitor')
email_terms = ['SuperChicken', 'WhoKilledKenny', 'RocketMan', 'parrot', 'manger', 'fuel']
for value in email_terms:
self.assertIn(value, self.email_provider.html_message)
def test_check_spot_one_extra(self):
expected_diff = {'*': '+', 'RocketMan': 'go', 'SuperChicken': 'woot', 'WhoKilledKenny': 'zone', 'idy': 'id2', 'StatusCode': 'bar'}
retrieved_spot_instances = [PretendSpotInstanceObject("id1"), PretendSpotInstanceObject("id2")]
self.cloud_provider.current_spot_instances = retrieved_spot_instances
# expected (from file record)
self.file_provider.file_lines = {'id1': {'chicken': 'woot', 'id': 'id1', 'danger': 'zone', 'launch_specification':{'rocket':'go'}, 'status':{'code':'bar'}}}
# go
self.spot_checker.do_comparison()
self.assertEqual(self.spot_checker.current["id1"], self.spot_checker.recorded["id1"])
self.assertFalse(hasattr(self.spot_checker.recorded, "id2"))
self.assertEqual(self.spot_checker.changes, {'removed': [], 'modified': [], 'added': ['id2']})
self.assertDictEqual(self.spot_checker.diff[0], expected_diff)
# File provider assertions
#.........这里部分代码省略.........