def test_staticmethod(self): self.assertEquals('Hello', mocks.StaticBase.base_method('Hello')) self.assertEquals('Hello', mocks.StaticBase().base_method('Hello')) compose(mocks.StaticMethodRefinement(), mocks.StaticBase) self.assertEquals('Hellorefined', mocks.StaticBase.base_method('Hello')) self.assertEquals('Hellorefined', mocks.StaticBase().base_method('Hello'))
def superimpose(self, module): """ superimpose a task module on registered tasks''' :param module: ape tasks module that is superimposed on available ape tasks :return: None """ featuremonkey.compose(module, self._tasks) self._tasks.FEATURE_SELECTION.append(module.__name__)
def test_member_refinement(self): class ModuleRefinement(object): refine_attr_in_module = 234 self.assertEquals(123, testmodule1.attr_in_module) compose(ModuleRefinement(), testmodule1) self.assertEquals(234, testmodule1.attr_in_module)
def test_member_introduction(self): class ModuleIntroduction(object): introduce_module_introduction = 478 compose(ModuleIntroduction(), testmodule1) self.assertEquals(True, hasattr(testmodule1, 'module_introduction')) self.assertEquals(478, testmodule1.module_introduction)
def test_classmethod(self): self.assertEquals('Hello', mocks.ClassMethodBase.base_method('Hello')) self.assertEquals('Hello', mocks.ClassMethodBase().base_method('Hello')) compose(mocks.ClassMethodRefinement(), mocks.ClassMethodBase) self.assertEquals('Hellorefined', mocks.ClassMethodBase.base_method('Hello')) self.assertEquals('Hellorefined', mocks.ClassMethodBase().base_method('Hello'))
def test_function_introduction(self): class ModuleFunctionIntroduction(object): def introduce_my_function(self): def my_function(x, y): return x - y return my_function self.assertEquals(False, hasattr(testmodule1, 'my_function')) compose(ModuleFunctionIntroduction(), testmodule1) self.assertEquals(0, testmodule1.my_function(3, 3))
def test_function_refinement(self): class ModuleFunctionRefinement(object): def refine_func_in_module(self, original): def func_in_module(x, y): return original(x, y) * 2 return func_in_module self.assertEquals(2, testmodule1.func_in_module(1, 1)) compose(ModuleFunctionRefinement(), testmodule1) self.assertEquals(4, testmodule1.func_in_module(1, 1))
def test_tuple_refinement(self): class ModuleTupleRefinement(object): def refine_tuple_in_module(self, original): refinement = list(original) refinement.append(4) refinement = tuple(refinement) return refinement self.assertEquals(3, len(testmodule1.tuple_in_module)) compose(ModuleTupleRefinement(), testmodule1) self.assertEquals(4, len(testmodule1.tuple_in_module)) self.assertEquals(4, testmodule1.tuple_in_module[-1])
def test_staticmethod(self): instance = mocks.StaticBase() instance2 = mocks.StaticBase() self.assertEquals('Hello', instance.base_method('Hello')) composition = compose(mocks.StaticMethodRefinement(), instance) self.assertEquals('Hellorefined', composition.base_method('Hello')) self.assertEquals('Hello', instance2.base_method('Hello'))
def test_submodule_deep_refinement(self): class SubmoduleRefinement(object): introduce_a = 123 def introduce_afunction(self): def afunction(a, b): return a * b return afunction class PackageDeepRefinement(object): child_submodule = SubmoduleRefinement self.assertEquals(False, hasattr(testpackage1.submodule, 'a')) compose(PackageDeepRefinement(), testpackage1) self.assertEquals(123, testpackage1.submodule.a) self.assertEquals(5, testpackage1.submodule.afunction(1, 5))
def test_class_deep_refinement(self): class ClassRefinement(object): introduce_a = 123 def refine_attr_in_class(self, original): return False def refine_plus(self, original): def plus(self, a, b): return (a + b) * 2 return plus class ModuleDeepRefinement(object): child_ClassInModule = ClassRefinement self.assertEquals(False, hasattr(testmodule1.ClassInModule, 'a')) self.assertEquals(2, testmodule1.ClassInModule().plus(1, 1)) self.assertEquals(True, testmodule1.ClassInModule().attr_in_class) compose(ModuleDeepRefinement(), testmodule1) self.assertEquals(False, testmodule1.ClassInModule().attr_in_class) self.assertEquals(4, testmodule1.ClassInModule().plus(1, 1))
def test_idendity(self): clss = mocks.Base composition = compose(mocks.MemberIntroduction, clss) self.assertEquals(clss, composition)
def test_member_introduction(self): instance = mocks.Base() composition = compose(mocks.MemberIntroduction(), instance) self.assertEquals(8, composition.base_prop) self.assertEquals(1, composition.a)
def test_method_refinement(self): instance = mocks.Base() composition = compose(mocks.MethodRefinement(), instance) self.assertEquals('Hellorefined', composition.base_method('Hello'))
def test_method_introduction(self): instance = mocks.Base() composition = compose(mocks.MethodIntroduction(), instance) self.assertEquals(8, composition.base_prop) self.assertTrue(composition.method())
def test_member_introduction(self): compose(mocks.MemberIntroduction, mocks.Base) self.assertEquals(8, mocks.Base.base_prop) self.assertEquals(1, mocks.Base.a)
def test_method_refinement(self): compose(mocks.MethodRefinement2(), mocks.Base) self.assertEquals('Hellorefined', mocks.Base().base_method('Hello'))
def test_classmethod(self): instance = mocks.ClassMethodBase() self.assertEquals('Hello', instance.base_method('Hello')) composition = compose(mocks.ClassMethodRefinement(), instance) self.assertEquals('Hellorefined', composition.base_method('Hello'))
def test_method_introduction(self): compose(mocks.MethodIntroduction(), mocks.Base) self.assertEquals(8, mocks.Base.base_prop) self.assertTrue(mocks.Base().method())
def test_singleparam(self): self.assertEquals(self, compose(self))
def test_idendity(self): instance = mocks.Base() composition = compose(mocks.MemberIntroduction(), instance) self.assertEquals(instance, composition)
def superimpose(self, module): '''superimpose a task module on registered tasks''' featuremonkey.compose(module, self._tasks) self._tasks.FEATURE_SELECTION.append(module.__name__)