Beispiel #1
0
 def it_not_transform_if_its_already_ftype(self):
     Str_mock = mock.MagicMock()
     obj = ftypes.Str('abc')
     with mock.patch.dict('flowp.ftypes.TYPES_MAP', {str:Str_mock}):
         ftypes.this(obj)
     assert not Str_mock.called
     assert ftypes.this(obj) is obj
Beispiel #2
0
    def it_transform_function_types_to_flowp_function_types(self):
        class SomeClass:
            def method(self):
                return 1

        def function():
            return 2

        obj = SomeClass()
        assert isinstance(ftypes.this(function), ftypes.FunctionAdapter)
        assert isinstance(ftypes.this(obj.method), ftypes.FunctionAdapter)
        assert isinstance(ftypes.this("abc".index), ftypes.FunctionAdapter)
Beispiel #3
0
    def it_transforms_builtin_types_to_flowp_types(self):
        class SomeClass:
            pass

        assert isinstance(ftypes.this(1), ftypes.Int)
        assert isinstance(ftypes.this(1.1), ftypes.Float)
        assert isinstance(ftypes.this("abc"), ftypes.Str)
        assert isinstance(ftypes.this(True), ftypes.BoolAdapter)
        assert isinstance(ftypes.this(None), ftypes.NoneAdapter)
        assert isinstance(ftypes.this([1, 2, 3]), ftypes.List)
        assert isinstance(ftypes.this((1, 2, 3)), ftypes.Tuple)
        assert isinstance(ftypes.this({'a': 1, 'b': 2}), ftypes.Dict)
        assert isinstance(ftypes.this({1, 2, 3}), ftypes.Set)
        assert isinstance(ftypes.this(SomeClass), ftypes.TypeAdapter)
Beispiel #4
0
    def it_return_object_adapter_if_not_builtin_type(self):
        class SomeClass:
            pass

        obj = SomeClass()
        obj.a = 111
        new_obj = ftypes.this(obj)
        assert new_obj.__class__ is ftypes.ObjectAdapter
        assert new_obj._adaptee is obj
        assert new_obj.a == 111
Beispiel #5
0
    def it_leaves_class_and_object_attributes(self):
        class SomeClass:
            a = 1
            
            def __init__(self):
                self.b = 2

        obj = SomeClass()
        new_obj = ftypes.this(obj)
        assert new_obj.a == 1
        assert new_obj.b == 2
Beispiel #6
0
 def it_invokes_types_method_through_this_wrapper(self):
     expect(ftypes.this(self.s)).isinstance(ftypes.Str)
     expect(ftypes.this(self.l).hasattr('index'))