New submission from Marco Buccini <marcu...@gmail.com>:

Suppose that you have an instance method that takes 2 arguments: one is 
required, while the other is a keyword argument. 

If you call that method without passing the required argument, but instead you 
only set the keyword argument, then you will get a TypeError exception, 
claiming this ...
 -> TypeError: 'method' takes at least 2 arguments (2 given)

(I am referring to this particular method: 
http://www.voidspace.org.uk/python/mock/mock.html#mock.Mock.mock_add_spec)

@patch('xyz.subprocess.Popen')
def test_xyz(self, mocked_popen):
    mocked_popen.mock_add_spec(spec_set=True)

I think the right error message should be different, in particular should be 
this:
 -> TypeError: 'method' takes at least 2 arguments (1 given)

----------
components: Interpreter Core
messages: 163072
nosy: markon
priority: normal
severity: normal
status: open
title: "TypeError" can give a misleading message
type: behavior
versions: Python 2.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue15098>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to