def setUp(self): TestNexus.setUp(self) self.nexus.merger.add_global_rule(Python()) self._python2="Python2" self.nexus.merger.add_global_rule(Python(name=self._python2)) self.nexus.merger.add_global_rule(Java()) self.nexus.merger.add_global_rule(Bash()) self.nexus.merger.add_app_rule(EclipseCCR(), eclipse.context) self.nexus.merger.update_config() self.set_global = self.nexus.merger.global_rule_changer() self.set_selfmod = self.nexus.merger.selfmod_rule_changer()
def setUp(self): TestNexus.setUp(self) self.PYTHON_ID = 100 self.nexus.merger.add_global_rule(Python(ID=self.PYTHON_ID)) self.nexus.merger.add_global_rule(Java()) self.nexus.merger.add_global_rule(Bash()) self.nexus.merger.add_selfmodrule(ChainAlias(self.nexus)) self.nexus.merger.add_app_rule(EclipseCCR(), eclipse.context) self.nexus.merger.add_filter(demo_filter) self.nexus.merger.update_config() self.nexus.merger.merge(MergeInf.BOOT) self.set_global = self.nexus.merger.global_rule_changer() self.set_selfmod = self.nexus.merger.selfmod_rule_changer()
def test_merge(self): python = Python() python_specs = len(python.mapping_actual().keys()) java = Java() java_specs = len(java.mapping_actual().keys()) vanilla = Alias(refresh=False) vanilla_specs = len(vanilla.mapping_actual().keys()) _merged = python.merge(java) self.assertEqual(python_specs, len(python.mapping_actual().keys())) self.assertEqual(java_specs, len(java.mapping_actual().keys())) _merged = vanilla.merge(java) '''MergeRules get this @ merging:''' del _merged.mapping_actual()["display available commands"] self.assertEqual(vanilla_specs + java_specs, len(_merged.mapping_actual().keys())) self.assertEqual(vanilla_specs, len(vanilla.mapping_actual().keys()))
def test_compatibility(self): python_id = 1 java_id = 2 javascript_id = 3 python = Python(ID=python_id) java = Java(ID=java_id) self.assertFalse(python.compatibility_check(java)) self.assertTrue(python_id in java.compatible) self.assertFalse(java.compatible[python_id]) self.assertEqual(len(python.compatible), 1) self.assertTrue(java_id in python.compatible) self.assertFalse(python.compatible[java_id]) self.assertEqual(len(java.compatible), 1) javascript = Javascript(ID=javascript_id) self.assertFalse(java.compatibility_check(javascript)) self.assertEqual(len(python.compatible), 1) self.assertEqual(len(javascript.compatible), 1) self.assertEqual(len(java.compatible), 2)
def test_runtime_global_spec_replace(self): ff = make_filter(lambda mp: incoming_gets_priority(mp), lambda mp: there_is_spec_overlap(mp), MergeInf.RUN, MergeInf.GLOBAL) self.nexus.merger.add_filter(ff) python = Python() '''attempt to emerge in an identical rule with a filter that allows it:''' self.set_global(self._python2, True, True) self.assertTrue(self.nexus.merger._config[CCRMerger._GLOBAL]["Python"]) self.assertTrue(self.nexus.merger._config[CCRMerger._GLOBAL][self._python2]) '''this is minus one because of the "show available commands" command: ''' merged_specs = len(self.nexus.merger._base_global.mapping_actual().keys()) - 1 python_specs = len(python.mapping_actual().keys()) self.assertEqual(merged_specs, python_specs) '''make sure were not deleting from the Python class mapping: ''' self.assertNotEqual(python_specs, 0) '''clear filters, clean up''' self.nexus.merger._filters = [] self.set_global(self._python2, False, True)
def test_id(self): python = Python() self.assertIsNotNone(python.ID)
def test_mcontext(self): python = Python() eclipse = EclipseCCR(mcontext=AppContext(executable='test')) self.assertIsNone(python.get_context()) self.assertIsNotNone(eclipse.get_context())
def core_and_python(): '''intended to mimic the average use case: ''' return [Alphabet(), Navigation(), Numbers(), Punctuation(), Python()]