def test_class_instantiation_and_sorting(self): lcp_mappings = [] self.mock_lcp_class_map(lcp_mappings) pp_cis = lifecycle_plugin_utils.get_plug_point_class_instances() self.assertEqual(0, len(pp_cis)) self.mock_get_plugins.assert_called_once_with() # order should change with sort lcp_mappings = [('A::B::C2', TestLifecycleCallout2), ('A::B::C1', TestLifecycleCallout1)] self.mock_lcp_class_map(lcp_mappings) pp_cis = lifecycle_plugin_utils.get_plug_point_class_instances() self.assertEqual(2, len(pp_cis)) self.assertEqual(100, pp_cis[0].get_ordinal()) self.assertEqual(101, pp_cis[1].get_ordinal()) self.assertEqual(TestLifecycleCallout1, pp_cis[0].__class__) self.assertEqual(TestLifecycleCallout2, pp_cis[1].__class__) self.mock_get_plugins.assert_called_once_with() # order should NOT change with sort lcp_mappings = [('A::B::C1', TestLifecycleCallout1), ('A::B::C2', TestLifecycleCallout2)] self.mock_lcp_class_map(lcp_mappings) pp_cis = lifecycle_plugin_utils.get_plug_point_class_instances() self.assertEqual(2, len(pp_cis)) self.assertEqual(100, pp_cis[0].get_ordinal()) self.assertEqual(101, pp_cis[1].get_ordinal()) self.assertEqual(TestLifecycleCallout1, pp_cis[0].__class__) self.assertEqual(TestLifecycleCallout2, pp_cis[1].__class__) self.mock_get_plugins.assert_called_once_with() # sort failure due to exception in thrown by ordinal lcp_mappings = [('A::B::C2', TestLifecycleCallout2), ('A::B::C3', TestLifecycleCallout3), ('A::B::C1', TestLifecycleCallout1)] self.mock_lcp_class_map(lcp_mappings) pp_cis = lifecycle_plugin_utils.get_plug_point_class_instances() self.assertEqual(3, len(pp_cis)) self.assertEqual(100, pp_cis[2].get_ordinal()) self.assertEqual(101, pp_cis[0].get_ordinal()) # (can sort fail partially? If so then this test may break) self.assertEqual(TestLifecycleCallout2, pp_cis[0].__class__) self.assertEqual(TestLifecycleCallout3, pp_cis[1].__class__) self.assertEqual(TestLifecycleCallout1, pp_cis[2].__class__) self.mock_get_plugins.assert_called_once_with()
def test_class_instantiation_and_sorting(self): lcp_mappings = [] self.mock_lcp_class_map(lcp_mappings) pp_cis = lifecycle_plugin_utils.get_plug_point_class_instances() self.assertEqual(len(pp_cis), 0) # order should change with sort lcp_mappings = [('A::B::C2', TestLifecycleCallout2), ('A::B::C1', TestLifecycleCallout1)] self.mock_lcp_class_map(lcp_mappings) pp_cis = lifecycle_plugin_utils.get_plug_point_class_instances() self.assertEqual(len(pp_cis), 2) self.assertEqual(pp_cis[0].get_ordinal(), 100) self.assertEqual(pp_cis[1].get_ordinal(), 101) self.assertEqual(TestLifecycleCallout1, pp_cis[0].__class__) self.assertEqual(TestLifecycleCallout2, pp_cis[1].__class__) # order should NOT change with sort lcp_mappings = [('A::B::C1', TestLifecycleCallout1), ('A::B::C2', TestLifecycleCallout2)] self.mock_lcp_class_map(lcp_mappings) pp_cis = lifecycle_plugin_utils.get_plug_point_class_instances() self.assertEqual(len(pp_cis), 2) self.assertEqual(pp_cis[0].get_ordinal(), 100) self.assertEqual(pp_cis[1].get_ordinal(), 101) self.assertEqual(TestLifecycleCallout1, pp_cis[0].__class__) self.assertEqual(TestLifecycleCallout2, pp_cis[1].__class__) # sort failure due to exception in thrown by ordinal lcp_mappings = [('A::B::C2', TestLifecycleCallout2), ('A::B::C3', TestLifecycleCallout3), ('A::B::C1', TestLifecycleCallout1)] self.mock_lcp_class_map(lcp_mappings) pp_cis = lifecycle_plugin_utils.get_plug_point_class_instances() self.assertEqual(len(pp_cis), 3) self.assertEqual(pp_cis[2].get_ordinal(), 100) self.assertEqual(pp_cis[0].get_ordinal(), 101) # (can sort fail partially? If so then this test may break) self.assertEqual(TestLifecycleCallout2, pp_cis[0].__class__) self.assertEqual(TestLifecycleCallout3, pp_cis[1].__class__) self.assertEqual(TestLifecycleCallout1, pp_cis[2].__class__) return
def test_get_plug_point_class_instances(self): """Tests the get_plug_point_class_instances function.""" lcp_mappings = [('A::B::C1', TestLifecycleCallout1)] self.mock_lcp_class_map(lcp_mappings) pp_cinstances = lifecycle_plugin_utils.get_plug_point_class_instances() self.assertIsNotNone(pp_cinstances) self.assertTrue(self.is_iterable(pp_cinstances), "not iterable: %s" % pp_cinstances) self.assertTrue(len(pp_cinstances) == 1) self.assertEqual(TestLifecycleCallout1, pp_cinstances[0].__class__)