Apparently in the flexmock universe, sys.stdout.write() takes two arguments rather than one. As of late July 2021, upstream hasn't said a word of comment on this; see https://github.com/flexmock/flexmock/issues/37 --- a/tests/unit/commands/test_borgmatic.py +++ b/tests/unit/commands/test_borgmatic.py @@ -448,7 +448,10 @@ ['baz'] ) stdout = flexmock() - stdout.should_receive('write').with_args('["foo", "bar", "baz"]').once() + try: + stdout.should_receive('write').with_args('["foo", "bar", "baz"]').once() + except flexmock.MethodSignatureError: + stdout.should_receive('write').with_args('["foo", "bar", "baz"]', None).once() flexmock(module.sys).stdout = stdout arguments = {}