has207/flexmock — pull request #100 by tradej (2014-09-25 16:12:30+00:00)
Title: Catch ValueError due to getargspec behaviour in Python 3.4

Hi,

while running this code on Python 3.4:
```python
from flexmock import flexmock
import os

flexmock(os).should_receive('access').with_args('foo/bar', 1).and_return(True)
```
I encountered this exception:
```
Traceback (most recent call last):
File "", line 1, in
File "/home/tradej/.local/lib/python3.4/site-packages/flexmock.py", line 714, in should_receive
return self._create_expectation(obj, name)
File "/home/tradej/.local/lib/python3.4/site-packages/flexmock.py", line 760, in _create_expectation
self._update_method(expectation, name)
File "/home/tradej/.local/lib/python3.4/site-packages/flexmock.py", line 811, in _update_method
expectation._update_original(name, obj)
File "/home/tradej/.local/lib/python3.4/site-packages/flexmock.py", line 293, in _update_original
self._update_argspec()
File "/home/tradej/.local/lib/python3.4/site-packages/flexmock.py", line 299, in _update_argspec
self.argspec = ArgSpec(inspect.getargspec(original))
File "/usr/lib64/python3.4/inspect.py", line 930, in getargspec
raise ValueError("Function has keyword-only arguments or annotations"
ValueError: Function has keyword-only arguments or annotations, use getfullargspec() API which can support them
```

The cause is that `getargspec` in Python 2.x fails with `os.access` as it is a built-in function implemented in C. However, in Python 3.4, it isn't, so `inspect.getargspec` fails with this `ValueError`. If you think that the proper way is to implement `Expectation._update_argspec` with `inspect.getfullargspec`, feel free to reject this pull request, but I am afraid I do not have the resources to do that on my own.