Esempio n. 1
0
 def test_flex_respects_at_least_when_called_less_than_requested(self):
     class Foo:
         def method_foo(self): pass
     foo = Foo()
     flex(foo).method_foo.returns('bar').times(2, None)
     foo.method_foo()
     assertRaises(MethodCallError, verify)
Esempio n. 2
0
 def test_flex_should_mock_generators(self):
     class Gen:
         def foo(self): pass
     gen = Gen()
     flex(gen).foo.yields(*range(1, 10))
     output = [val for val in gen.foo()]
     assertEqual([val for val in range(1, 10)], output)
Esempio n. 3
0
 def test_flex_should_create_partial_old_style_class_mock(self):
     class User:
         def __init__(self): pass
         def get_name(self): pass
     flex(User).get_name.returns('mike')
     user = User()
     assertEqual('mike', user.get_name())
Esempio n. 4
0
 def test_flex_calls_should_match_keyword_arguments(self):
     class Foo:
         def method1(self, arg1, arg2=None, arg3=None):
             return '%s%s%s' % (arg1, arg2, arg3)
     foo = Foo()
     flex(foo).method1(1, arg3=3, arg2=2).runs().times(1)
     assertEqual('123', foo.method1(1, arg2=2, arg3=3))
Esempio n. 5
0
 def test_arg_matching_works_with_regexp(self):
     class Foo:
         def foo(arg1, arg2): pass
     foo = Foo()
     flex(foo).foo(
         re.compile('^arg1.*asdf$'), arg2=re.compile('f')).returns('mocked')
     assertEqual('mocked', foo.foo('arg1somejunkasdf', arg2='aadsfdas'))
Esempio n. 6
0
 def test_should_give_reasonable_error_for_instances_of_builtins(self):
     d = dict()
     try:
         flex(d).keys
         raise Exception('MockBuiltinError not raised')
     except MockBuiltinError:
         pass
Esempio n. 7
0
 def test_should_not_blow_up_on_default_for_static_methods(self):
     class User:
         @staticmethod
         def foo():
             return 'static'
     flex(User).foo.runs()
     assertEqual('static', User.foo())
Esempio n. 8
0
 def test_should_not_blow_up_on_default_for_class_methods(self):
     class User:
         @classmethod
         def foo(self):
             return 'class'
     flex(User).foo.runs()
     assertEqual('class', User.foo())
Esempio n. 9
0
 def test_flex_respects_at_most_when_called_more_than_requested(self):
     class Foo:
         def method_foo(self): pass
     foo = Foo()
     flex(foo).method_foo.returns('value_bar').times(0, 1)
     foo.method_foo()
     assertRaises(MethodCallError, foo.method_foo)
Esempio n. 10
0
 def test_flex_respects_at_most_when_called_requested_number(self):
     class Foo:
         def method_foo(self): pass
     foo = Foo()
     flex(foo).method_foo.returns('value_bar').times(0, 1)
     foo.method_foo()
     verify()
Esempio n. 11
0
 def test_flex_respects_at_most_when_called_less_than_requested(self):
     class Foo:
         def method_foo(self): pass
     foo = Foo()
     flex(foo).method_foo.returns('bar').times(0, 2)
     foo.method_foo()
     verify()
Esempio n. 12
0
 def test_flex_spy_should_not_clobber_original_method(self):
     class User:
         def get_stuff(self): return 'real', 'stuff'
     user = User()
     flex(user).get_stuff.runs()
     flex(user).get_stuff.runs()
     assertEqual(('real', 'stuff'), user.get_stuff())
Esempio n. 13
0
 def test_should_mock_new_instances_with_multiple_params(self):
     class User(object): pass
     class Group(object):
         def __init__(self, arg, arg2):
             pass
     user = User()
     flex(Group).__new__.returns(user)
     assert user is Group(1, 2)
Esempio n. 14
0
 def test_arg_matching_with_regex_fails_when_regex_doesnt_match_kwarg(self):
     class Foo:
         def foo(arg1, arg2): pass
     foo = Foo()
     flex(foo).foo(
         re.compile('^arg1.*asdf$'), arg2=re.compile('a')).returns('mocked')
     assertRaises(MethodSignatureError,
         foo.foo, 'arg1somejunkasdf', arg2='b')
Esempio n. 15
0
 def test_flex_respects_at_least_when_called_more_than_requested(self):
     class Foo:
         def method_foo(self): pass
     foo = Foo()
     flex(foo).method_foo.returns('value_bar').times(1, None)
     foo.method_foo()
     foo.method_foo()
     verify()
Esempio n. 16
0
 def test_flex_should_fail_mocking_nonexistent_methods(self):
     class User: pass
     user = User()
     try:
         flex(user).nonexistent()
         raise Exception('failed to raise FlexError')
     except FlexError:
         pass
Esempio n. 17
0
 def test_flex_should_replace_method(self):
     class Foo:
         def method(self, arg):
             return arg
     foo = Foo()
     flex(foo).method.runs(lambda x: x == 5)
     assertEqual(foo.method(5), True)
     assertEqual(foo.method(4), False)
Esempio n. 18
0
 def test_flex_should_revert_new_instances_on_teardown(self):
     class User(object): pass
     class Group(object): pass
     user = User()
     group = Group()
     flex(Group).__new__.returns(user)
     assert user is Group()
     verify()
     assertEqual(group.__class__, Group().__class__)
Esempio n. 19
0
 def test_should_accept_multiple_return_values_with_shortcut(self):
     class Foo:
         def method1(self): pass
     foo = Foo()
     flex(foo).method1.returns(1, 2)
     assertEqual(1, foo.method1())
     assertEqual(2, foo.method1())
     assertEqual(1, foo.method1())
     assertEqual(2, foo.method1())
Esempio n. 20
0
 def test_calls_fails_properly_for_same_method_with_different_args(self):
     class Foo:
         def method(self, arg):
             pass
     foo = Foo()
     flex(foo).method('foo').runs().times(1)
     flex(foo).method('bar').runs().times(1)
     foo.method('foo')
     assertRaises(MethodCallError, verify)
Esempio n. 21
0
 def test_flex_should_properly_restore_module_level_functions(self):
     if 'flex_test' in sys.modules:
         mod = sys.modules['flex_test']
     else:
         mod = sys.modules['__main__']
     flex(mod).module_level_function
     assertEqual(None, module_level_function(1, 2))
     verify()
     assertEqual('1, 2', module_level_function(1, 2))
Esempio n. 22
0
 def test_should_properly_restore_undecorated_static_methods(self):
     class User:
         def get_stuff(): return 'ok!'
         get_stuff = staticmethod(get_stuff)
     assertEqual('ok!', User.get_stuff())
     flex(User).get_stuff
     assert User.get_stuff() is None
     verify()
     assertEqual('ok!', User.get_stuff())
Esempio n. 23
0
 def test_flex_should_properly_restore_static_methods(self):
     class User:
         @staticmethod
         def get_stuff(): return 'ok!'
     assertEqual('ok!', User.get_stuff())
     flex(User).get_stuff
     assert User.get_stuff() is None
     verify()
     assertEqual('ok!', User.get_stuff())
Esempio n. 24
0
 def test_flex_should_mock_private_special_methods(self):
     class Foo:
         def __private_special_method__(self):
             return 'foo'
         def public_method(self):
             return self.__private_special_method__()
     foo = Foo()
     flex(foo).__private_special_method__.returns('bar')
     assertEqual('bar', foo.public_method())
Esempio n. 25
0
 def test_flex_preserves_stubbed_class_methods_between_tests(self):
     class User:
         def get_name(self):
             return 'mike'
     user = User()
     flex(User).get_name.returns('john')
     assertEqual('john', user.get_name())
     verify()
     assertEqual('mike', user.get_name())
Esempio n. 26
0
 def test_flex_should_mock_double_underscore_method(self):
     class Foo:
         def __(self):
             return 'foo'
         def public_method(self):
             return self.__()
     foo = Foo()
     flex(foo).__.returns('bar')
     assertEqual('bar', foo.public_method())
Esempio n. 27
0
    def test_mocking_down_the_inheritance_chain_class_to_class(self):
        class Parent(object):
            def foo(self): pass
        class Child(Parent):
            def bar(self): pass

        flex(Parent).foo.returns('outer')
        flex(Child).bar.returns('inner')
        assert 'outer', Parent().foo()
        assert 'inner', Child().bar()
Esempio n. 28
0
 def test_calls_works_for_same_method_with_different_args(self):
     class Foo:
         def method(self, arg):
             pass
     foo = Foo()
     flex(foo).method('foo').runs().times(1)
     flex(foo).method('bar').runs().times(1)
     foo.method('foo')
     foo.method('bar')
     verify()
Esempio n. 29
0
 def test_pass_thru_calls_original_method_only_once(self):
     class Nyan(object):
         def __init__(self):
                 self.n = 0
         def method(self):
                 self.n += 1
     obj = Nyan()
     flex(obj).method.runs()
     obj.method()
     assertEqual(obj.n, 1)
Esempio n. 30
0
 def test_flex_should_properly_restore_class_methods(self):
     class User:
         @classmethod
         def get_stuff(cls):
             return cls.__name__
     assertEqual('User', User.get_stuff())
     flex(User).get_stuff.returns('foo')
     assertEqual('foo', User.get_stuff())
     verify()
     assertEqual('User', User.get_stuff())